Macro pied de page

Résolu
Signaler
Messages postés
4
Date d'inscription
lundi 7 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2013
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
javascript:void(0);

Bonjour à tous.
Voici mon problème:
j'ai créé un fichier excel comprenant 162 onglets.
Chaque onglets représentent un bulletin scolaire de plusieurs pages d'un élève.

Je souhaite faire apparaitre en pied de page, le nom de l'élève; l'année scolaire;et le nombre de page.
le nom de l'élève et l'année scolaire apparaissent chacun dans une cellule en début de bulletin.

j'ai essayé celà:

Private Sub CommandButton42_Click()
' Ajout pied de page dans tous les onglets
Dim i As Integer
Application.ScreenUpdating = False
For i = 11 To Worksheets.Count - 4 'de la feuille 11 à -4 de la fin qui représente le bulletins
With Sheets(i).PageSetup
.LeftFooter = Range("h16") & " " & Range("e17")
.CenterFooter = Range("d19") & " " & Range("d18")
.RightFooter = "Page &P/&N"
End With
Next i

Application.ScreenUpdating = True
End Sub

Dans tous les pieds de page, c'est le nom de l'élève et l'année scolaire de la feuille (onglet) active qui seront insérés et non le nom de l'élève sur chaque bulletins. Pourquoi ça ne marche pas???????
J'ai essayer XXXXXmacros, mais rien n’aboutis correctement.
Merci pour votre aide....

Quelqu'un pourrait-il me répondre juste pour savoir si mon message à bien été envoyé aux internautes? Merci.
A bientôt..

5 réponses

Messages postés
34682
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2022
358
Bonjour,
Lorsque vous indiquez les cellules à utiliser pour prendre les différentes valeurs, préscisiez la feuille utilisée :
.LeftFooter = Range("h16") & " " & Range("e17") 

donnerait :
.LeftFooter = Sheets(i).Range("h16").Value & " " & Sheets(i).Range("e17").Value


Par contre, lors de vos prochains messages sur le forum, merci d'utiliser les balises de codes ( 3eme Icone en partant de la droite)

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut

En effet, tu ne lui dit pas où chercher les infos H16 et consor.
Je pense, contrairement à Jordane45, qu'il faut cibler la première feuille (*) et pas la feuille courante :
(*) en supposant que les données à insérer sont sur la première feuille; le mieux étant de donner le nom de la feuille et pas son numéro
' chiffre 1 et pas 'i'
.LeftFooter = Sheets(1).Range("h16").Value & " " & Sheets(1).Range("e17").Value
' Nom de la feuille
.LeftFooter = Sheets("NomFeuilleBulletin").Range("h16").Value & " " & Sheets("NomFeuilleBulletin").Range("e17").Value

'i' et 'l' (L) doivent être bannis comme noms de variable car trop ressemblant au chiffre 1 = confusion possible à la relecture rapide.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Messages postés
34682
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2022
358
Ben tout depend comment tu comprend la demande...

Soit les informations ne sont présentes que dans une feuille (par exemple "Bullletin" ) et dans ce cas, il faut en effet, indiquer dans la macro que la valeur s'y trouve ( comme le dit Jack ),
soit (... et c'est comme ça que j'avais compris la question..)... DANS CHAQUE FEUILLE du classeur (dans la boucle "For i = 11 To Worksheets.Count - 4"), les données à utiliser sont dans les cellules H16... E17 etc...

Et donc il faut bien utiliser MA méthode.

Quand à l'utilisation du "i" et non du "1" vient uniquement du fait que j'ai gardé la variable utilisé pour la boucle FOR.

Personnellement, l'utilisation du "i" dans mes programmes ne m'a jamais dérangé...
Après tout.. c'est une "syntaxe" extraiement courante pour les boucles ... non ?
Et si on suit ton raisonement, Jack, il faudrait également banir les B (8) , les O (0, les S (5) etc...








Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
4
Date d'inscription
lundi 7 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2013

merci pour votre aide.
La solution proposé par jordane45 fonctionne parfaitement.
A bientôt pour de nouvelles macros!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
lol, parfois, je lis un peu en diagonal.
Bien vu, Jordane