Remplir des cellules sur plusieurs feuilles à partir d'une liste

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.





1 réponse

Gyrus Messages postés 3360 Statut Membre 526
 
Bonjour,

Avec un exemple, c'est plus simple ....
https://www.cjoint.com/c/EFmtdf4p6mK

A+
0
Julien
 
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...
0
Gyrus Messages postés 3360 Statut Membre 526 > Julien
 
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+
0
Julien > Gyrus Messages postés 3360 Statut Membre
 
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!
0
Gyrus Messages postés 3360 Statut Membre 526
 
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+
0
Julien
 
merci gyrus c'est vraiment parfait.

merci pour tes réponses et ta pédagogie ;)
0