youandmy
Messages postés4Date d'inscriptionlundi 7 décembre 2009StatutMembreDernière intervention21 janvier 2013
-
16 janv. 2013 à 13:09
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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..
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344 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