Sommaire avec numéro de pages sur Excel

Résolu
Chester Copperpot Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Chester Copperpot Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je souhaiterais passer de Word à Excel pour la rédaction de mes rapports.
Mes rapports sont essentiellement composés de tableaux Excel, les copier-coller me font perdre beaucoup temps, et je n'ai pas réellement besoin des fonctions proposées par Word.

En gros je souhaiterais utiliser les feuilles Excel comme chapitres.

Cependant je bloque sur le sommaire automatique avec le numéro des pages :

J'ai bien inséré les numéros de page en pied de page.

Lorsque l'on fait "Imprimer le classeur entier", on constate que les numéros de pages s'enchainent correctement (si la Feuille 1 possède trois pages, alors la Feuille 2 démarre bien en page n°4).

En revanche lorsque l'on est en affichage "Mise en Page", toute les feuilles démarrent par une page n°1.

Dans la première feuille ("Sommaire") j'arrive bien à lister le nom de toutes les feuilles via une macro.

Ma question est la suivante :
Je voudrais afficher en face du nom de chaque feuille le numéro de page que l'on retrouve lorsque l'on fait "Imprimer le classeur entier". Je ne sais pas comment extraire cette variable...

Merci beaucoup pour votre aide!

Vincent

Configuration: Windows / Firefox 96.0

1 réponse

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    En VBA l'instruction donnant le nombre de pages d'une feuille est :
    nbf =ExecuteExcel4Macro("GET.DOCUMENT(50)")

    Exemple de macro pour relever les noms de toutes les feuilles et le n° de leur première page lors d'une impression totale
    Sub sommaire()
    'si la première feuille excel commence à 1 mettre deb =0 sinon si par ex sommaire en 1er sur une page numérotée page 1 mettre comme ici deb=1
    deb = 1
    ' le sommaire étant en premier onglet, boucle sur les autres feuilles
    For n = 2 To Sheets.Count
     Sheets(n).Select
     ' relève le nom de la feuille
     Sheets("Sommaire").Range("B" & n) = Sheets(n).Name
     ' inscrit le n° de la 1ere page
     Sheets("Sommaire").Range("C" & n) = deb + 1
     'incrémente la variable avec le nombre de pages de la feuille
      deb = deb + ExecuteExcel4Macro("GET.DOCUMENT(50)")
      Next
      
      Sheets("Sommaire").Select
    End Sub


    Cdlmnt
    Via

    1
    1. Chester Copperpot Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,

      Et bien merci beaucoup pour cette réponse parfaite! C'est exactement ce que je voulais.
      Du coup plus d'excuse, je vais devoir me mettre au travail maintenant!

      Très bonne journée à vous.
      0