Sub NbPages()
Dim n As Integer
With ActiveSheet
.PageSetup.PrintArea = "" 'RAZ
.PageSetup.PrintArea = .UsedRange.Address 'zone d'impression
n = .HPageBreaks.Count + 1 'nombre de pages à imprimer
End With
MsgBox n 'pour tester
End Sub
Au lieu du UsedRange on peut définir la zone d'impression sur un tableau défini :
La solution précédente ne donne pas toujours le bon résultat.
Celle-ci fonctionne très bien :
Code:
Sub NbPages()
Dim n As Integer
With ActiveSheet
.PageSetup.PrintArea = .UsedRange.Address 'zone d'impression
End With
n = ExecuteExcel4Macro("GET.DOCUMENT(50)") 'nombre de pages à imprimer
MsgBox n 'pour tester
End Sub