Copier coller lignes à un endroit précis

Résolu
Bonjour,

Je débute sur excel et je n'ai pas trouvé la réponse sur les différent forum, je vous pose donc mon problème.
J'ai 4 feuilles excel: la première précise si les personnes sont en congés ou absent
la seconde renseignent sur les compétences de chaque personnes
la troisième est le planning
la Quatrième sert de filtre pour créer un planning.
Mon problème est sur la 3ème feuille: je souhaite extraire de la feuille 1 les personnes présente chaque jours, et grâce a la feuille 2, coller automatiquement la ligne correspondant a ses compétence a la suite de son nom.
Cependant je ne parvient pas à ce que la ligne copier respect le nom de la personne concerné.
Si besoin de plus d'info, merci de me le dire.
Merci par avance !!

6 réponses

  1. Mon problème est sur la 4eme feuille, faute de frappe pardon.
    0
    1. Bonjour AFN,

      Dans le cas ci-dessous, j'ai admis que :
      - Dans ta feuille 1, tu avais dans la colonne A les noms et dans la B le statut.
      - Dans ta feuille 2, tu avais dans la colonne A les noms et dans les autres colonnes les compétences


      Sheets("Feuil1").Activate
      Cells(1, 2).Select
      Do While Not (IsEmpty(ActiveCell))
      If ActiveCell.Value = "présent" Then
      Selection.Offset(0, -1).Select
      a = ActiveCell.Value
      Sheets("Feuil2").Activate
      Cells(1, 1).Select
      Do While Not ActiveCell.Value = a
      Selection.Offset(1, 0).Select
      Loop
      Rows(ActiveCell.Row).Select
      Selection.Copy
      Sheets("Feuil4").Activate
      Rows("2:2").Select
      Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
      ActiveSheet.Paste
      End If
      Sheets("Feuil1").Activate
      Selection.Offset(1, 0).Select
      Loop
      0
      1. Bonjour Ant049?

        La macro fonctionne bien, mais juste pour le premier nom de ma liste feuille1 (présence). Comment faire pour étendre la macro a chaque nom de ma liste ?
        0
        1. Autant pour moi, il manquait un tout petit truc :

          Sheets("Feuil1").Activate
          Cells(1, 2).Select
          Do While Not (IsEmpty(ActiveCell))
          If ActiveCell.Value = "présent" Then
          Selection.Offset(0, -1).Select
          a = ActiveCell.Value
          Sheets("Feuil2").Activate
          Cells(1, 1).Select
          Do While Not ActiveCell.Value = a
          Selection.Offset(1, 0).Select
          Loop
          Rows(ActiveCell.Row).Select
          Selection.Copy
          Sheets("Feuil4").Activate
          Rows("2:2").Select
          Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
          ActiveSheet.Paste
          End If
          Sheets("Feuil1").Activate
          Selection.Offset(1, 1).Select
          Loop
          0
      2. Toujours pas, si je t'envoie le fichier tu peux me dire si mon adaptation est bonne ?
        0
        1. Oui
          0
        2. @Ant049Aprés une dernière modif de ma part ... tout a planté, je relance est t'envoie le fichier
          0
      3. Je me suis créer un compte.
        Je n'arrive pas à ajouter une pièce-jointe à mon message.
        0
        1. Va sur cjoint.com
          0
      4. Merci, voici donc le liens:
        http://www.cjoint.com/c/FHihUtDmUJo
        0
        1. Bonjour,

          Voici le code :

          Sub Macro1()
          Sheets("Planning conges à remplir").Activate
          Cells(10, 2).Select
          Do While Not (IsEmpty(ActiveCell))
          If ActiveCell.Value = "1" Then
          Selection.Offset(0, -1).Select
          a = ActiveCell.Value
          Sheets("Matrice Compétence").Activate
          Cells(3, 1).Select
          Do While Not ActiveCell.Value = a
          Selection.Offset(1, 0).Select
          Loop
          Rows(ActiveCell.Row).Select
          Selection.Copy
          Sheets("Liste Personne dispo").Activate
          Rows("2:2").Select
          Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
          ActiveSheet.Paste
          Else
          Selection.Offset(0, -1).Select
          End If
          Sheets("Planning conges à remplir").Activate
          Selection.Offset(1, 1).Select
          Loop
          End Sub


          Par contre, tu verras qu'il plante mais là je ne peux rien y faire. En effet, des noms présents sur la feuille des disponibilités sont absents de la feuille des compétences. D'où le blocage pour réunir les informations.
          0
        2. d'accord merci beaucoup de ton aide.
          0
        3. Si cela fonctionne lorsque les noms sont mis partout, merci de mettre résolu à ce topic.

          Bonne continuation
          0