Compter le nombre de pages à imprimer
Le
bcar
Bonjour,
Comment faire sous excel 2003 pour compter le nombre de pages qui vont
être imprimée dans une worksheet ?
Sous 2007 je fais ThisWorkbook.Worksheets(1).PageSetup.Pages.Count et
c'est bon, mais la propriété Pages n'existe pas sous 2003.
Mon but est de compter le nombre de pages total qui vont être imprimées
dans le classeur pour faire uns numérotation globale (et non pas qui
repart à 1 pour chaque worksheet) : 1/x, 2/x, dans les pieds de page
des feuilles imprimées.
sous 2007 je fais grosso modo :
cpt = cpt + ThisWorkbook.Worksheets(1).PageSetup.Pages.Count
cpt = cpt + ThisWorkbook.Worksheets(2).PageSetup.Pages.Count
total = cpt
cpt = 0
With ThisWorkbook.Worksheets(1)
.PageSetup.CenterFooter = "Page &P+" & cpt & " de " & total
cpt = cpt + .PageSetup.Pages.Count
.PrintOut Copies:=1, Collate:=True
End With
With ThisWorkbook.Worksheets(2)
.PageSetup.CenterFooter = "Page &P+" & cpt & " de " & total
cpt = cpt + .PageSetup.Pages.Count
.PrintOut Copies:=1, Collate:=True
End With
Merci pour vos réponses
Comment faire sous excel 2003 pour compter le nombre de pages qui vont
être imprimée dans une worksheet ?
Sous 2007 je fais ThisWorkbook.Worksheets(1).PageSetup.Pages.Count et
c'est bon, mais la propriété Pages n'existe pas sous 2003.
Mon but est de compter le nombre de pages total qui vont être imprimées
dans le classeur pour faire uns numérotation globale (et non pas qui
repart à 1 pour chaque worksheet) : 1/x, 2/x, dans les pieds de page
des feuilles imprimées.
sous 2007 je fais grosso modo :
cpt = cpt + ThisWorkbook.Worksheets(1).PageSetup.Pages.Count
cpt = cpt + ThisWorkbook.Worksheets(2).PageSetup.Pages.Count
total = cpt
cpt = 0
With ThisWorkbook.Worksheets(1)
.PageSetup.CenterFooter = "Page &P+" & cpt & " de " & total
cpt = cpt + .PageSetup.Pages.Count
.PrintOut Copies:=1, Collate:=True
End With
With ThisWorkbook.Worksheets(2)
.PageSetup.CenterFooter = "Page &P+" & cpt & " de " & total
cpt = cpt + .PageSetup.Pages.Count
.PrintOut Copies:=1, Collate:=True
End With
Merci pour vos réponses

Poser une question


trouvé au hasard des réponses de l'excellent michel du québec :
MsgBox ActiveWindow.SelectedSheets.HPageBreaks.Count + 1
HTH
Mgr T.B.
"bcar" fov43n$ojt$
NbPages = (Sheets(1).HPageBreaks.Count + 1) *
(Sheets(1).VPageBreaks.Count + 1)
JB
http://boisgontierjacques.free.fr
On 13 fév, 16:59, bcar
mais curieusement cette méthode ne me donne pas le bon résultat (sauf
quand il n'y a qu'une page :) ) ni sous 2007 ni sous 2003.Et la
différence est conséquente : en vrai 33 pages, avec cette méthode 12...
(ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
Julien
"Mgr Banni"
effectivement cela ne peut pas fonctionner si par exemple une feuille contient des données en cellule A1:A100 et AA1:AA30.
isabelle