Evenement "au changement de page"

Résolu/Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 29 oct. 2015 à 11:48
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 29 oct. 2015 à 14:54
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.
A voir également:

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
29 oct. 2015 à 12:09
Bonjour,

Peut-être en lisant ceci:

https://fring.developpez.com/vba/excel/entetepiedpage/
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
29 oct. 2015 à 14:07
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
29 oct. 2015 à 14:16
Aide F1 d'Excel:


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

0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
29 oct. 2015 à 14:47
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
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
29 oct. 2015 à 14:49
Ok je viens de corriger :

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


Merci beaucoup.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
29 oct. 2015 à 14:54
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