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

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

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

    A+
    0
    1. 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
      1. 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
      2. 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
    2. 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
    3. Julien
       
      merci gyrus c'est vraiment parfait.

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