Impression d'un champ sans les lignes vides

Sub MasqueVides()
  Set champ = Range("$A$1:$F$30")
  champ.Find("*", , , , xlByRows, xlPrevious).Offset(1, 0).Select
  n = champ.Columns.Count
  champ.Cells(65000, 1).End(xlUp).Offset(1, 0).Select
  For i = 1 To champ.Rows.Count
    If Application.CountA(champ.Cells(i, 1).Resize(1, n)) = 0 Then
       Union(Selection, champ.Cells(i, 1)).Select
     End If
   Next i
   Selection.EntireRow.Hidden = True
   ActiveSheet.PageSetup.PrintArea = champ.Address
   ActiveWindow.SelectedSheets.PrintPreview
   Cells.EntireRow.Hidden = False
   ActiveSheet.PageSetup.PrintArea = ""
End Sub

Version avec formules dans le champ imprimé

Sub masqueVidesAvecFormules()
  Set champ = Range("$A$1:$F$30")
  champ.Find("*", , , , xlByRows, xlPrevious).Offset(1, 0).Select
  n = champ.Columns.Count
  champ.Cells(65000, 1).End(xlUp).Offset(1, 0).Select
  For i = 1 To champ.Rows.Count
     k = 0
     For Each c In champ.Cells(i, 1).Resize(1, n)
       If c <> 0 And c <> "" Then k = k + 1
     Next c
     If k = 0 Then Union(Selection, champ.Cells(i, 1)).Select
  Next i
  Selection.EntireRow.Hidden = True
  ActiveSheet.PageSetup.PrintArea = champ.Address
  ActiveWindow.SelectedSheets.PrintPreview
  Cells.EntireRow.Hidden = False
End Sub

ImprimeSansVides.xls