Copier coller ligne vba
carine
-
carine -
carine -
Bonjour,
Je suis novice puisque c'est ma première tentative, et je cherche une solution à un pb:
Le but de l'exercice est de réaliser un fichier récapitulatif.
J'ai plusieurs onglets actifs dont je souhaite mettre les données à la suite sur un onglet récapitulatif.
Je prends les données du 1er onglet et je les colle dans la récap:
Range("A4").Select
Sheets("Onglet1").Select
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Récap").Select
Range("A4").Select
ActiveSheet.Paste
Je copie les données de l'onglet 2 que je colle dans l'onglet récap à la suite des données déjà copiées précédemment:
Sheets("Onglet2").Select
Rows("5:5").Select
ActiveWindow.SmallScroll Down:=-15
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Récap").Select
Range("A4").Select
Selection.End(xlDown).Select
ActiveSheet.Paste
Et ainsi de suite pour les autres onglets...
J'ai créé un bouton et tout se met bien à jour lorsque je clique.
Mon problème est que lorsque j'ajoute des données sur l'onglet 1, je ne récupère pas la dernière ligne. Je ne récupère les données que jusqu'à la dernière ligne -1.
Comment modifier le code pour obtenir la dernière ligne? Je pensais que XLDown suffisait.
Petite précision, en amont de tout cela j'ai ajouter la suppression de toutes les données de l'onglet récap. Et cela fonctionne très bien:
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Merci pour votre aide car je suis un peu perdue.
Carine
Je suis novice puisque c'est ma première tentative, et je cherche une solution à un pb:
Le but de l'exercice est de réaliser un fichier récapitulatif.
J'ai plusieurs onglets actifs dont je souhaite mettre les données à la suite sur un onglet récapitulatif.
Je prends les données du 1er onglet et je les colle dans la récap:
Range("A4").Select
Sheets("Onglet1").Select
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Récap").Select
Range("A4").Select
ActiveSheet.Paste
Je copie les données de l'onglet 2 que je colle dans l'onglet récap à la suite des données déjà copiées précédemment:
Sheets("Onglet2").Select
Rows("5:5").Select
ActiveWindow.SmallScroll Down:=-15
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Récap").Select
Range("A4").Select
Selection.End(xlDown).Select
ActiveSheet.Paste
Et ainsi de suite pour les autres onglets...
J'ai créé un bouton et tout se met bien à jour lorsque je clique.
Mon problème est que lorsque j'ajoute des données sur l'onglet 1, je ne récupère pas la dernière ligne. Je ne récupère les données que jusqu'à la dernière ligne -1.
Comment modifier le code pour obtenir la dernière ligne? Je pensais que XLDown suffisait.
Petite précision, en amont de tout cela j'ai ajouter la suppression de toutes les données de l'onglet récap. Et cela fonctionne très bien:
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Merci pour votre aide car je suis un peu perdue.
Carine
A voir également:
- Copier ligne vba
- Partager photos en ligne - Guide
- Dessin sms copier coller zizi ✓ - Forum Réseaux sociaux
- Comment copier une vidéo youtube - Guide
- Mètre en ligne - Guide
- Super copier - Télécharger - Gestion de fichiers
3 réponses
Bonjour,
Une bonne habitude à prendre : supprimer les "select" autant que possible.
Voici tes 2 macros revues et corrigées.
A+
Une bonne habitude à prendre : supprimer les "select" autant que possible.
Voici tes 2 macros revues et corrigées.
Sub Test()
'Je prends les données du 1er onglet et je les colle dans la récap:
With Sheets("Onglet1")
.Range(.Rows("4:4"), .Rows("4:4").End(xlDown)).Copy
ActiveSheet.Paste Destination:=Worksheets("Récap").Range("A4")
End With
'Je copie les données de l'onglet 2 que je colle dans l'onglet récap à la suite des données déjà copiées précédemment:
With Sheets("Onglet2")
.Range(.Rows("5:5"), .Rows("5:5").End(xlDown)).Copy
ActiveSheet.Paste Destination:=Worksheets("Récap").Range("A4").End(xlDown).Offset(1)
End With
Application.CutCopyMode = False
End Sub
Sub Suppression()
With Worksheets("Récap")
.Range(.Rows("4:4"), .Rows("4:4").End(xlDown)).Delete Shift:=xlUp
End With
End Sub
A+
carine
Un grand merci Gyrus. Grace à vos conseils je vais progresser!