IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour mise en page, affichant le nombre total de pages du classeur entier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Employé administratif
    Inscrit en
    Février 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé administratif

    Informations forums :
    Inscription : Février 2014
    Messages : 77
    Points : 28
    Points
    28
    Par défaut Macro pour mise en page, affichant le nombre total de pages du classeur entier
    Bonjour,

    La macro ci-dessous indique la mise en page, avec pour en-tête de page, le n° de page / le nombre total de pages d’une même feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub mise_en_page()
    With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = "Page&P / Page&N" 'Pied de page : Page 1 / Nombre de pages'
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
    End With
    End Sub
    Je souhaiterais modifier cette macro en indiquant pour en-tête de page, le n° de page / le nombre total de pages du classeur entier (qui contient de nombreuses feuilles, qui pour une même feuille, existe plusieurs pages).

    Quelle est la modification à apporter pour permettre de visualiser le nombre total de pages du classeur entier ?

    Vous en remerciant par avance.

    Cordialement.

  2. #2
    Membre actif
    Formateur en informatique
    Inscrit en
    Janvier 2011
    Messages
    134
    Détails du profil
    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 134
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    Voici un début de solution ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub NbreDeSaut()
     
    Dim nbSaut
    Dim HPb As HPageBreaks
     
    Set HPb = ActiveSheet.HPageBreaks
     
    For Each Pb In HPb
        nbSaut = nbSaut + 1
    Next
     
    If IsEmpty(nbSaut) Then nbSaut = 0
    MsgBox nbSaut & " sauts trouvés" & vbCrLf & nbSaut + 1 & " pages"
     
    End Sub
    Ça c'est pour compter le nombre de pages d'une feuille
    Bien sûr il faut boucler sur toutes les feuilles.

    Maintenant pour le pied de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.FirstPageNumber = 10
    Cela permet de fixer le numéro de la première page (exemple à 10)

    En combinant tout cela le problème devrait être résolu

    Cordialement
    Stéphane

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Employé administratif
    Inscrit en
    Février 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé administratif

    Informations forums :
    Inscription : Février 2014
    Messages : 77
    Points : 28
    Points
    28
    Par défaut Macro pour mise en page, affichant le nombre total de pages du classeur entier
    Bonjour,

    J'ai testé et ça fonctionne avec une MsgBox.

    Mais je souhaiterais adapter ta syntaxe pour que cela s'affiche en en-tête de page pour chaque page du classeur ?

    pour le spécifier ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub mise_en_page()
    With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
    End With
    End Sub
    Merci pour ton aide.

    Cordialement.

  4. #4
    Membre actif
    Formateur en informatique
    Inscrit en
    Janvier 2011
    Messages
    134
    Détails du profil
    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 134
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Numerotation()
     
    Dim nbSaut As Long
    Dim nbPages As Long
    Dim Wks As Worksheet
     
    'Calcul du nombre total de pages
     
    For Each Wks In Worksheets
        nbPages = nbPages + Wks.HPageBreaks.Count + 1
    Next Wks
     
    'Définition des pieds de page
     
    Dim PremierNumero As Long
    PremierNumero = 0
    nbSaut = 0
     
    For Each Wks In Worksheets
        PremierNumero = PremierNumero + nbSaut + 1
     
        With Wks.PageSetup
            .FirstPageNumber = PremierNumero
            .RightHeader = "Page &P / " & nbPages
        End With
     
        nbSaut = Wks.HPageBreaks.Count
     
    Next Wks
     
    End Sub
    Stéphane

Discussions similaires

  1. Macro pour mise en page formulaire
    Par chahnou dans le forum VBA Access
    Réponses: 9
    Dernier message: 13/12/2013, 20h18
  2. [XL-2010] Macro pour mise en page
    Par Nessie37 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 25/09/2012, 11h14
  3. macro pour mise en page d'un tableau
    Par teen6517 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/09/2010, 14h52
  4. Afficher le nombre total de page Printpreviewdialog
    Par olibara dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/11/2009, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo