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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mgr Banni
Le #5277481
bonjour bcar
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$
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


JB
Le #5277441
Bonjour,

NbPages = (Sheets(1).HPageBreaks.Count + 1) *
(Sheets(1).VPageBreaks.Count + 1)

JB
http://boisgontierjacques.free.fr


On 13 fév, 16:59, 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ée s
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


bcar
Le #5277431
Oui, merci, c'est effectivement la première chose que j'avais tenté,
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...

bonjour bcar
trouvé au hasard des réponses de l'excellent michel du québec :

MsgBox ActiveWindow.SelectedSheets.HPageBreaks.Count + 1

HTH

Mgr T.B.



news.microsoft.com
Le #5277421
Celle-là est-elle mieux ?

(ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)

Julien

"Mgr Banni"
bonjour bcar
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$
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





isabelle
Le #5277391
bonjour,

effectivement cela ne peut pas fonctionner si par exemple une feuille contient des données en cellule A1:A100 et AA1:AA30.

isabelle

Oui, merci, c'est effectivement la première chose que j'avais tenté,
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...

bonjour bcar
trouvé au hasard des réponses de l'excellent michel du québec :

MsgBox ActiveWindow.SelectedSheets.HPageBreaks.Count + 1

HTH

Mgr T.B.





MichDenis
Le #5277371
Tu aurais pu lui suggérer ceci :

'-------------------------
For Each Sh In ActiveWindow.SelectedSheets
With Sh.PageSetup
' .CenterFooter = "&P & "" page"" /&N & "" Pages"
'OU
.CenterFooter = "&P/&N"
Sh.PrintPreview
End With
Next
'-------------------------

Et le monsieur pourrait insérer l'événement du Thiisworkbook et la
procédure générale deviendrait :
'----------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each Sh In ActiveWindow.SelectedSheets
With Sh.PageSetup
' .CenterFooter = "&P & "" page"" /&N & "" Pages"
'OU
.CenterFooter = "&P/&N"
End With
Next
End Sub
'----------------------------------



"Mgr Banni"
bonjour bcar
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$
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


ChrisV
Le #5277231
Bonjour bcar,

Sub testImp()
MsgBox "Votre édition comportera : " _
& Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") _
& " feuille(s)"
End Sub


ChrisV


"bcar" fov43n$ojt$
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


isabelle
Le #5277141
Salut ChrisV,

j'ai essayé plusieurs chose mais rien ne marche pour compter le nb. de feuille à imprimer de se classeur,
http://cjoint.com/?cnwizCv5Tm

domage...

isabelle

Bonjour bcar,

Sub testImp()
MsgBox "Votre édition comportera : " _
& Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") _
& " feuille(s)"
End Sub


ChrisV


"bcar" fov43n$ojt$
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






MichDenis
Le #5277071
Dans l'en-tête de la section gauche, tu as ceci "&[Pages]"
défini comme mise en page de la feuil1. La mise en page
d'une feuille est enregistré avec le fichier si tu l'as enregistré.

En conséquence, dans le coin supérieur gauche, tu as le
nombre total de pages qui s'affiche lors d'un PrintPreview

Au-delà de ça, je n'y trouve rien d'anormal !



"isabelle" a écrit dans le message de news:
Salut ChrisV,

j'ai essayé plusieurs chose mais rien ne marche pour compter le nb. de feuille à imprimer de se
classeur,
http://cjoint.com/?cnwizCv5Tm

domage...

isabelle

Bonjour bcar,

Sub testImp()
MsgBox "Votre édition comportera : " _
& Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") _
& " feuille(s)"
End Sub


ChrisV


"bcar" fov43n$ojt$
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






Modeste
Le #5277061
Bonsour® isabelle avec ferveur ;o))) vous nous disiez :

j'ai essayé plusieurs chose mais rien ne marche pour compter le nb.
de feuille à imprimer de se classeur, http://cjoint.com/?cnwizCv5Tm


pour moi ça marche...
http://cjoint.com/?coamRukIn7

--
@+
;o)))

Publicité
Poster une réponse
Anonyme