Macro pied de page

Résolu
youandmy Messages postés 4 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 21 janvier 2013 - 16 janv. 2013 à 13:09
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 17 janv. 2013 à 01:37
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
16 janv. 2013 à 13:45
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2013 à 15:55
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)
3
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
16 janv. 2013 à 16:51
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
3
youandmy Messages postés 4 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 21 janvier 2013
16 janv. 2013 à 21:12
merci pour votre aide.
La solution proposé par jordane45 fonctionne parfaitement.
A bientôt pour de nouvelles macros!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 janv. 2013 à 01:37
lol, parfois, je lis un peu en diagonal.
Bien vu, Jordane
0
Rejoignez-nous