Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier coller de données par macro

  • Initiateur de la discussion Initiateur de la discussion ascarter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

ascarter

Guest
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

Re : Copier coller de données par macro

Sa a l'air de marcher, merci beaucoup. Par contre y-a t-il un autre moyen de désigner les feuille où l'on va chercher les données et où on les colle? Merci.
 
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.
 
Re : Copier coller de données par macro

Merci beaucoup, tu as parfaitement répondu. Comme je débute en VBA, j'essaye de comprendre le maximum de choses. Merci encore.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
488
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…