Remplir des cellules sur plusieurs feuilles à partir d'une liste
Julien
-
Julien -
Julien -
Bonjour à tous!
Je suis débutant sur excel et je commence à peine à comprendre comment fonctionne les macros...
Excusez moi si la solution a déjà été donné mais je ne la trouve pas...
j'aimerais compléter la cellule de chaque feuille de mon classeur a partir d'une liste du classeur.
En fait, sur la première feuille j'ai un tableau avec en colonne:
A: Nom
B: prénom
C: date de naissance
et j'aimerais que ces infos soient transférées sur toutes les autres feuilles du classeur :
Nom en cellule A8
Prénom en cellule C8
Date de naissance en cellule F8
Merci d'avance à tous pour vos réponses.
Julien.
Je suis débutant sur excel et je commence à peine à comprendre comment fonctionne les macros...
Excusez moi si la solution a déjà été donné mais je ne la trouve pas...
j'aimerais compléter la cellule de chaque feuille de mon classeur a partir d'une liste du classeur.
En fait, sur la première feuille j'ai un tableau avec en colonne:
A: Nom
B: prénom
C: date de naissance
et j'aimerais que ces infos soient transférées sur toutes les autres feuilles du classeur :
Nom en cellule A8
Prénom en cellule C8
Date de naissance en cellule F8
Merci d'avance à tous pour vos réponses.
Julien.
1 réponse
-
-
Merci Gyrus pour ta réponse.
J'ai du mal expliqué une partie de ce que je souhaite.
J'aimerais que sur la feuille 1, la premiere ligne du tableau apparaisse, sur la feuille 2 la second, etc.
C'est à dire que sur chaque feuille j'ai nom prénom date de naissance qui apparaissent...
Donc d'après ton exemple, il faudrait que sur la première feuille je n'ai que Dupont Paul 01/01/2001
sur la seconde Dubois Robin etc...
Et tout ça en cellule A8 C8 F8 :)
Merci d'avance Gyrus, j'espère que je suis un peu plus clair...- Essaie comme cela :
Sub Transferer()
Dim WsS As Worksheet
Dim i As Byte
Set WsS = Worksheets("Feuil1") 'Feuille source
For i = 2 To 4
Worksheets(i).Range("A8") = WsS.Range("A" & i).Value
Worksheets(i).Range("C8") = WsS.Range("B" & i).Value
Worksheets(i).Range("F8") = WsS.Range("C" & i).Value
Next i
MsgBox "Traitement terminé !"
End Sub
A+ - Merci encore Gyrus, cela fonctionne effectivement!
Si je peux un peu abuser, j'aimerais comprendre le code pour le modifier exactement comme je le souhaite:
Sub Transferer()
Dim WsS As Worksheet cela défini les feuilles concernées?
Dim i As Byte
Set WsS = Worksheets("Feuil1") 'Feuille source ok pour la feuille source
For i = 2 To 4 Si je comprend bien, tu créés une variable que tu nommes i. 2 to 4, c'est pour dire qu'on commence à la feuille 2 et qu'on termine à la 4?
Worksheets(i).Range("A8") = WsS.Range("A" & i).Value la je ne comprend pas vraiment ahah mais en gros, on met dans A8 ce qu'on trouve en colonne A pour A=i?
Worksheets(i).Range("C8") = WsS.Range("B" & i).Value
Worksheets(i).Range("F8") = WsS.Range("C" & i).Value
Next i
MsgBox "Traitement terminé !"
End Sub
Merci encore pour ton explication!
-
Bonjour,
For i = 2 To 4 Si je comprend bien, tu créés une variable que tu nommes i. 2 to 4, c'est pour dire qu'on commence à la feuille 2 et qu'on termine à la 4 ?
C'est bien cela.
Il faut donc impérativement que la feuille source soit la feuille 1.
Worksheets(i).Range("A8") = WsS.Range("A" & i).Value la je ne comprend pas vraiment ahah mais en gros, on met dans A8 ce qu'on trouve en colonne A pour A=i?
Là, j'utilise le fait que les données de la ligne 2 de la feuille source doivent être copiées dans la feuille 2, les données de la ligne 3 dans la feuille 3, etc.
L'indice i correspond donc à la fois au numéro de feuille où s'effectue la copie et au numéro de la ligne copiée.
A+ -
-