Regrouper les données de 2 onglets ensemble via VBA

Résolu
Bonjour le forum,

voilà, cela fait 1 journée que j'essaie de trouver une solution afin de regrouper les données de 2 ongets dans un seul onglet.

Début:

J'ai l'onglet du fichier qui s'appel "Données 1" qui contient des valeurs dans les colonnes de L à W.
Le nombre de lignes peut varier et n'est pas toujours identique

J'ai l'onglet du fichier qui s'appel "Données 2" qui contient des valeurs dans les colonnes de L à W.
Le nombre de lignes peut varier et n'est pas toujours identique

A présent, je souhaiterais pouvoir automatiser le travail en reprenant les valeurs présentent dans ces colonnes des 2 onglets pour les mettre dans l'onglet "Définitif" depuis la cellule A1 les unes après les autres.

J'ai bien eu essayé de reprendre des bouts de codes trouvés par ci et par là mais sans succès...

Par avance merci pour votre aide

mamined

2 réponses

  1. Salut,

    essaie ce code :)

    de mon côté ça marche à partir de ton exemple, mais c'est à peaufiner j'imagine !

    Sub TEST1()

    'pour clear la feuille de destination, facultatif
    Sheets("Définitif").Select
    Selection.Delete

    Dim DernLigne1 As Long
    DernLigne = Sheets("Données 1").Range("L" & Rows.Count).End(xlUp).Row

    Dim DernLigne2 As Long
    DernLigne2 = Sheets("Données 2").Range("L" & Rows.Count).End(xlUp).Row

    If Sheets("Données 1").Range("L1").Value <> "" Then
    For i = 1 To DernLigne1
    Sheets("Données 1").Select
    Range("L" & i & ":W" & i).Select
    Selection.Copy
    Sheets("Définitif").Select
    Range("A" & i).Select
    ActiveSheet.Paste
    Next i
    End If

    If Sheets("Données 2").Range("L1").Value <> "" Then
    For j = 1 To DernLigne2
    Sheets("Données 2").Select
    Range("L" & j & ":W" & j).Select
    Selection.Copy
    Sheets("Définitif").Select
    Range("A" & j + DernLigne1).Select
    ActiveSheet.Paste
    Next j
    End If

    End Sub
    0
    1. Hello Theo,

      merci pour ta réponse et ton aide. La macro fait une partie du job. En fait ce qui se passe chez moi c'est que ça reprend les données du "Données 2" pour les recopier dans le définitif, mais cela ne me reprend pas les données de l'onglet "Données1".
      Du coup je reste bloqué:)

      mamined
      0
    2. @maminedAhh oui j'ai oublié un "1" à DernLigne ce qui casse tout pour la feuille Données 1, du coup ça fait ça le code qui marche :

      Sub TEST1()

      'pour clear la feuille de destination, facultatif
      Sheets("Définitif").Select
      Selection.Delete

      Dim DernLigne1 As Long
      DernLigne1 = Sheets("Données 1").Range("L" & Rows.Count).End(xlUp).Row

      Dim DernLigne2 As Long
      DernLigne2 = Sheets("Données 2").Range("L" & Rows.Count).End(xlUp).Row

      If Sheets("Données 1").Range("L1").Value <> "" Then
      For i = 1 To DernLigne1
      Sheets("Données 1").Select
      Range("L" & i & ":W" & i).Select
      Selection.Copy
      Sheets("Définitif").Select
      Range("A" & i).Select
      ActiveSheet.Paste
      Next i
      End If

      If Sheets("Données 2").Range("L1").Value <> "" Then
      For j = 1 To DernLigne2
      Sheets("Données 2").Select
      Range("L" & j & ":W" & j).Select
      Selection.Copy
      Sheets("Définitif").Select
      Range("A" & j + DernLigne1).Select
      ActiveSheet.Paste
      Next j
      End If

      End Sub

      Dis moi si ça te convient ;)
      0
    3. @Theo.RHello Theo,

      Yesss trop fort:-) merci infiniment. ça fait ce que je souhaite effectuer...C'est génial
      0
    4. @maminedDe rien :)

      Merci de valider le sujet en résolu ;)
      0