Sub Recto()
'imprime 2 lignes d'en-têtes et les lignes visibles 1 et 2
Dim plage As Range, cel As Range, n As Byte
For Each cel In [A6:A10000].SpecialCells(xlCellTypeVisible)
n = n + 1
Set plage = Union(IIf(plage Is Nothing, cel, plage), cel)
If n = 2 Then Exit For
Next
ActiveSheet.PageSetup.PrintArea = plage.EntireRow.Address 'zone d'impression
ActiveSheet.PageSetup.PrintTitleRows = "$4:$5" 'titres
ActiveSheet.PrintOut 'impression
End Sub
Sub Verso()
'imprime 2 lignes d'en-têtes et les lignes visibles 3 et 4
Dim plage As Range, cel As Range, n As Byte
For Each cel In [A6:A10000].SpecialCells(xlCellTypeVisible)
n = n + 1
If n > 2 Then Set plage = Union(IIf(plage Is Nothing, cel, plage), cel)
If n = 4 Then Exit For
Next
ActiveSheet.PageSetup.PrintArea = plage.EntireRow.Address 'zone d'impression
ActiveSheet.PageSetup.PrintTitleRows = "$4:$5" 'titres
ActiveSheet.PrintOut 'impression
End Sub