VBA - Numérotation des pages
Résolu
Tramb
-
Tramb' -
Tramb' -
Bonjour,
J'essaie de mettre en en-tête le numéro de page actuel pour chaque feuille. Je veux par exemple que lors de l'impression de diverses feuilles contenant un à plusieurs pages, elles soient bien numérotées les une après les autres.
J'ai bien récupéré le nombre total de pages sans souci, mais
- soit je prend une variable que j'incrémente et je me retrouve avec dans une feuille qui contient plusieurs page le même numéro de page pour chaque page (à cause de l'en-tête statique)
- soit je met l'incrémentation automatique d'excel ("&P") mais il démarre à 1 à chaque feuille. Et comme c'est une chaine de caractère et non un integer, je ne peux pas l'incrémenter moi-même.
Une solution ?
Merci d'avance.
J'essaie de mettre en en-tête le numéro de page actuel pour chaque feuille. Je veux par exemple que lors de l'impression de diverses feuilles contenant un à plusieurs pages, elles soient bien numérotées les une après les autres.
J'ai bien récupéré le nombre total de pages sans souci, mais
- soit je prend une variable que j'incrémente et je me retrouve avec dans une feuille qui contient plusieurs page le même numéro de page pour chaque page (à cause de l'en-tête statique)
- soit je met l'incrémentation automatique d'excel ("&P") mais il démarre à 1 à chaque feuille. Et comme c'est une chaine de caractère et non un integer, je ne peux pas l'incrémenter moi-même.
Une solution ?
Merci d'avance.
A voir également:
- VBA - Numérotation des pages
- Comment numéroter les pages sur powerpoint - Guide
- Supprimer des pages sur word - Guide
- Comment numeroter les pages word - Guide
- Le document à télécharger comporte 19 pages. en numérotant automatiquement chaque page de ce document, on constate que sa numérotation ne commence pas à 1. quel nom d’animal apparaît sur la page avec le numéro 30 ? - Forum MacOS
- Vous avez créé trop de pages récemment. réessayez plus tard - Forum Facebook
5 réponses
For Each c In Worksheets
c.PageSetup.CenterHeader = "&B" & PREP & Chr(13) & ETUDE & "&B"
Pages = Pages + c.HPageBreaks.Count + 1
Next
For Each c In Worksheets
c.PageSetup.RightHeader = ("&P" + Page) & "/" & Pages
Next
Re,
il ne faut pas définir le RightHeader dans la boucle each ...., pour chaque élément le n° de page est 1.
à l'impression
Maintenant si tu veux imprimer toutes les feuilles du classeur les unes à la suite des autres, avec des N° de page qui se suivent, c'est différent.
A+
il ne faut pas définir le RightHeader dans la boucle each ...., pour chaque élément le n° de page est 1.
à l'impression
Worksheets("clients").PageSetup.RightHeader = "&P" & "/" & "&N" affiche le N° de page incrémenté et le nombre de page de la feuille
Maintenant si tu veux imprimer toutes les feuilles du classeur les unes à la suite des autres, avec des N° de page qui se suivent, c'est différent.
A+
j'ai bien trouvé quelque chose, mais ça ne fonctionne que s'il n'y a qu'une page par feuille!
sinon "&P+5" n'additionne pas mais concatène. donc pour 3 pages par feuille on aura
15,25,35 et pareil pour les pages suivantes!!
pas sûr qu'il y ait une solution du moins pour mon niveau et ma version (2003)
Vraiment désolé
sinon "&P+5" n'additionne pas mais concatène. donc pour 3 pages par feuille on aura
15,25,35 et pareil pour les pages suivantes!!
pas sûr qu'il y ait une solution du moins pour mon niveau et ma version (2003)
Vraiment désolé
Bonjour
a essayer
a essayer
Option Explicit
Sub numeroter_pages()
Dim nbre As Byte, cptr As Byte
nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To nbre
With Sheets(cptr).PageSetup
.RightHeader = "&P" & "/" & nbre
.FirstPageNumber = cptr
End With
Next
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonsoir,
merci Michel,
ton code marche mais seulement s'il n'y a qu'une page à imprimer par feuille.
mais avec .FirstPageNumber j'ai trouvé:
merci Michel,
ton code marche mais seulement s'il n'y a qu'une page à imprimer par feuille.
mais avec .FirstPageNumber j'ai trouvé:
Dim nbre As Byte, cptr As Byte
nbre = ThisWorkbook.Sheets.Count
NBpage = 1
'********** Calcul NB de pages total***************
For cptr = 1 To nbre
NBr = NBr + (Sheets(cptr).HPageBreaks.Count + 1) * (Sheets(cptr).VPageBreaks.Count + 1)
Next
'*********** Numérotation des pages pour chaque feuille ****************
For cptr = 1 To nbre
With Sheets(cptr).PageSetup
.FirstPageNumber = NBpage
.RightHeader = "&P" & "/" & NBr
End With
'Sheets(cptr).PrintPreview
'*** determination du nombre de page imprimées pour décaler le n° de page pour la feuille suivante
NBpage = NBpage + (Sheets(cptr).HPageBreaks.Count + 1) * (Sheets(cptr).VPageBreaks.Count + 1)
Next