[VBA] Pied Page et Numéros de page, Comment faire svp ?

  • Initiateur de la discussion Initiateur de la discussion Staple1600
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Voici un problème que je n'arrive pas à solutionner correctement
Dans un classeur Excel avec N onglets contenant chacun n pages, comment faire pour numéroter les pages de manières successives ?

Quelqu'un voit-il comment faire ?

Merci

Voilà ou j'en suis pour le moment (côté VBA)
Il faut grouper les feuilles pour que la numérotation soit correcte*
(je ne comprends pas pourquoi)

(Pour tester les codes, il faut utiliser un classeur vierge contenant 3 feuilles)

Code:
Sub a_creation_donnees_TEST() 
[COLOR=SeaGreen]' macro pour remplir un classeur de test
' contenant 3 onglets, chaque onglet contenant 2 pages
'soit un total de 6 pages[/COLOR]
Dim s As Worksheet
For Each s In Worksheets
With s
    With .Range("A1:G112")
        .FormulaLocal = "=ALEA()"
        .Value = .Value
    End With
    End With
Next
End Sub
Code:
Sub b_insertion_NUMPages() 
[COLOR=SeaGreen]' insertion des numéros de pages à ma manière[/COLOR]
Dim s As Worksheet, tp As Long
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
Sheets("Feuil1").Activate
For Each s In Worksheets
    tp = tp + s.HPageBreaks.Count
Next
    For Each s In Worksheets
        With s
        .PageSetup.RightFooter = "&P" & "/" & tp
        End With
    Next
End Sub
Code:
Sub c_PiedPageNatifExcel() 
[COLOR=SeaGreen]'insertion des numéros de page en utilisant Mise en page/pied de page
'ne fonctionne pas correctement [/COLOR]
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
Sheets("Feuil1").Activate
ActiveSheet.PageSetup.RightFooter = "&P / &N"
End Sub
Code:
Sub d_raz() 
[COLOR=SeaGreen]'macro à utiliser pour remettre me classeur à vide entre chaque test[/COLOR]
Dim s As Worksheet
For Each s In Worksheets
With s
    .Cells.Clear
    .PageSetup.RightFooter = ""
End With
Next
End Sub
*: numérotation correcte avec la macro b_insertion_NUMPages
mais problème aléatoire de numérotation sur classeur avec nombreux onglets.
 
Dernière édition:
Solution
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Bonsoir JNP, Efgé, le forum

Avec ce code, cela semble fonctionner 😉

Code:
Sub PiedsPages() [COLOR=Green]'merci Hasco ;-)[/COLOR]
'[B]Lien supprimé[/B]
    Dim sh As Worksheet
    For Each sh In Worksheets
        sh.PageSetup.RightFooter = "&""Arial""" & "&10" & "&P /&N"
    Next sh
End Sub
PS: Le code ci-dessus fonctionne si avant de faire l'aperçu avant impression , on groupe les 3 feuilles.
(clic-droit sur l'onglet de la Feuille 1 -> Sélectionner toutes les feuilles)
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Re 🙂,
En réalité, le problème vient du comportement erratique de HPageBreaks.Count...
dernière page non remplie : nbr page - 1
dernière page remplie : nbr page
Et si on a le malheur d'appliquer une zone d'impression : 1 😕...
Donc effectivement, il y a un lézard, mais comment le contourner ?
Bon courage 😎
 
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Bonsoir JNP, Efgé, le forum

Avec ce code, cela semble fonctionner 😉

Code:
Sub PiedsPages() [COLOR=Green]'merci Hasco ;-)[/COLOR]
'[B]Lien supprimé[/B]
    Dim sh As Worksheet
    For Each sh In Worksheets
        sh.PageSetup.RightFooter = "&""Arial""" & "&10" & "&P /&N"
    Next sh
End Sub
PS: Le code ci-dessus fonctionne si avant de faire l'aperçu avant impression , on groupe les 3 feuilles.
(clic-droit sur l'onglet de la Feuille 1 -> Sélectionner toutes les feuilles)
 
Dernière édition:
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Re 🙂,
Oui, mais ça, on le savait depuis le début 😛...
J'avais compris que ton but, c'était d'imprimer un seul onglet, mais avec les pages correctes 😱... pour économiser le papier 😉.
Bonne soirée 😎
 
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Re


Au moins cela m'aura permis de saluer Hasco 😉

Le but recherché est:
Pour un classeur X, avec N onglets contenant N pages par onglet, la macro doit correctement numéroter les pages en suivant cette logique :

N= nombre total de pages contenu dans le classeur
n=numéro de page

Exemple :

Feuille 1, page 1 = Page n / N
Feuille 1, page 2 = Page n+1 /N
Feuille 2, page 1= Page n+1 /N
(et non pas Page 1 / Nombre de pages de la Feuille 2)
etc..
Dernière Feuille, dernière page de la dernière feuille = Page N / N

(Dans la pratique, le classeur peut avoir jusqu'à 100 pages à imprimer
répartis sur plusieurs onglets et non pas sur 100 onglets)

PS: le code doit fonctionner sans erreur, car je ne serai pas l'utilisateur final (et je ne voudrai pas aggraver la déforestation de la planète)
 
Re : [VBA] Pied Page et Numéros de page, Comment faire svp ?

Re 🙂,
Mais ça, il le fait tout seul (en tout cas sur 2007) dès qu'on sélectionne tous les onglets et qu'on demande une numérotation automatique...
A + 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
518
Retour