Copier coller de données par macro

ascarter

XLDnaute Junior
Bonjour le forum,
J'ai des données dans la feuille 1 et dans la feuille 2 qui sont concentrées dans une seule colonne. J'aimerais copier les données de la feuille 1 et les coller dans la feuille 3. Puis copier les données de la feuille 2 et les coller à la suite des données de la feuille 1 dans la feuille 3. Ceci en utilisant une macro si possible. J'ajoute pour info que le nombre de données dans les feuille 1 et 2 est variable. J'espére avoir été clair, j'ai mis en pj un exemple avec lequel vous comprendrez un peu mieux je pense. Merci d'avance pour vos réponses.
 

Pièces jointes

  • Testcopie.xls
    13.5 KB · Affichages: 38
  • Testcopie.xls
    13.5 KB · Affichages: 40
  • Testcopie.xls
    13.5 KB · Affichages: 40

Papou-net

XLDnaute Barbatruc
Re : Copier coller de données par macro

Bonjour ascarter,

Voici ton fichier avec une macro de démo attachée au bouton Copier.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

  • Copie de Testcopie.xls
    37 KB · Affichages: 47

Papou-net

XLDnaute Barbatruc
Re : Copier coller de données par macro

RE

Voici une autre façon, entre autres, de désigner les feuilles :

Code:
Private Sub CommandButton1_Click()
For Each sh In Worksheets
  If Not sh Is Feuil3 Then
    For Each cel In sh.Range("A:A").SpecialCells(xlCellTypeConstants)
      lg = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
      Sheets("Feuil3").Range("A" & lg) = cel.Value
    Next
  End If
Next
End Sub
On pourrait tout aussi bien utiliser le nom en clair des onglets :

Code:
Private Sub CommandButton1_Click()
For Each cel In Sheets("Feuil1").Range("A:A").SpecialCells(xlCellTypeConstants)
  lg = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
  Sheets("Feuil3").Range("A" & lg) = cel.Value
Next
For Each cel In Sheets("Feuil2").Range("A:A").SpecialCells(xlCellTypeConstants)
  lg = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
  Sheets("Feuil3").Range("A" & lg) = cel.Value
Next
End Sub
Mais, à mon avis, la solution initiale présente les avantages suivants :

- En cas de changement de nom des onglets, pas besoin de réécrire le code

- Ajout ou retrait de feuilles sans incidences sur le code également, à condition toutefois que la feuille cible reste toujours en dernière position

Voilà, en espérant avoir répondu à tes interrogations.

Cordialement.
 

Discussions similaires