bon, ma réponse n'est pas passée, je la remets donc :
Private Sub CommandButton1_Click()
Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
With ActiveSheet
Set Plage = .Range("A3:A300").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True
'.PrintPreview 'pour voir sans imprimer
.PrintOut
.Rows.Hidden = False
End With
End Sub
ça devrait aller mieux ainsi