Evenement "au changement de page"

Résolu
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

J'ai un problème que je ne sais pas résoudre en VBA...

Je n'aime vraiment pas les en-têtes et pieds de page. Donc je me pose la question de l'existence d'un code qui permette de faire la même chose.

Je m'explique, j'ai un tableau qui fait plusieurs page. J'ai configuré mon impression à l'aide de PageSetup. par contre, sur chaque page, j'aimerais faire apparaître mon numéro de page 2 lignes plus haut. Donc en fait je ne sais pas comment dire en VBA "au changement de page, insère 2 lignes en haut de la page et écrit page n°..."

Si quelqu'un a une idée, je suis preneur !

Merci beaucoup d'avance.

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Peut-être en lisant ceci:

    https://fring.developpez.com/vba/excel/entetepiedpage/
    0
    1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      Ca a l'air vraiment pas mal. Je vais me servir de ça merci. Une petite question supplémentaire, je ne comprend pas comment obtenir la mise en page pour une mise à l'échelle de type "ajuster toutes les colonnes à une page". Tu connais le code?
      Merci.
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Aide F1 d'Excel:

    With Worksheets("Sheet1").PageSetup
        .Zoom = False
        .FitToPagesTall = 1
        .FitToPagesWide = 1
    End With

    0
    1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      OK donc dans mon cas :

      With Worksheets("Sheet1").PageSetup
          .Zoom = False
          .FitToPagesTall = False
          .FitToPagesWide = 1
      End With


      Par contre j'ai un code qui fait donc :

      With Sheets("JDA" & NumeroJDA).PageSetup
      DL5 = Sheets("JDA" & NumeroJDA).Cells(Application.Rows.Count, 1).End(xlUp).Row
              .Zoom = False
              .FitToPagesTall = False
              .FitToPagesWide = 1
              .Orientation = xlLandscape
              .LeftHeader = "&""-,Gras""JDA " & NumeroJDA & "***PAGE &P/&N"
              .PrintArea = Range("A1:M" & DL5)
      End With


      Pour pouvoir vraiment avoir ce que je veux avec la définition de la zone d'impression.

      Mais le message "Désolé...Nous avons rencontré un problème avec cette formule : nous n'avons pas trouvé de référence de plage ou de nom défini."

      Sur cette ligne :

      .PrintArea = Range("A1:M" & DL5)
      0
    2. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      Ok je viens de corriger :

      .PrintArea = Range("A1:M" & DL5).Address


      Merci beaucoup.
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    DL5 = Sheets("JDA" & NumeroJDA).Cells(Application.Rows.Count, 1).End

    Doit ce trouver en dehors de With

    comme ceci:
    DL5 = Sheets("JDA" & NumeroJDA).Cells(Application.Rows.Count, 1).End
    With Sheets("JDA" & NumeroJDA).PageSetup
            .Zoom = False
            .FitToPagesTall = False
            .FitToPagesWide = 1
            .Orientation = xlLandscape
            .LeftHeader = "&""-,Gras""JDA " & NumeroJDA & "***PAGE &P/&N"
            .PrintArea = Range("A1:M" & DL5)
    End With
     
    
    0