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

Microsoft 365 Macro, copier coller sans écraser la ligne selectionnée

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 !

Nella66

XLDnaute Nouveau
Bonjour,

Je souhaite copier "dans l onglet "template" et coller dans l onglet "Master" les données sans écraser les lignes déjà inscrites
Je ne me rappelle plus comment on fait ça


Sub CopiePaste()
'
' CopiePaste Macro
'
' Touche de raccourci du clavier: Ctrl+k
'
Range("B4:H65").Select
Selection.Copy
Sheets("Master").Select
Range("A5").Select
ActiveSheet.Paste
End Sub



merci beaucoup
 

Pièces jointes

Dernière édition:
Solution
Bonsoir (re)

Essaies ceci
Code:
Sub CopiePaste_bis()
Range("B4:H65").Copy
Sheets("Master").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub

NB: >J'ai pas eu ton feedback sur ma formule dans ton autre fil 😉
(Celui des mois en anglais)
Bonsoir (re)

Essaies ceci
Code:
Sub CopiePaste_bis()
Range("B4:H65").Copy
Sheets("Master").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub

NB: >J'ai pas eu ton feedback sur ma formule dans ton autre fil 😉
(Celui des mois en anglais)
 
ça marche très bien 😀

du coup j'aimerais juste modifier au lieu de --> range("B4:H65")
j'aimerais qu'il compte toutes les lignes et qu'il s arrête pas juste à 65 sinon tant que s'est écris ,si j'ai bien compris il faut faire :

Sub CopiePaste_bis()
Sheets("Template").Cells(Rows.Count, "B").End(xlUp)(2).CopieSpecial xlValues
Sheets("Master").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub

?
merci infiniment 🙂 !
 
Bonjour Nella66

J'avais utilisé ce code pour copier a la suite d'un tableau

DerniereLigneUtilisee = Range("B" & Rows.Count).End(xlUp).Row +1
et
val1 = Sheets("Feuil1").Range("A11")
Sheets("HISTORIQUE TELS").Range("A" & DerniereLigneUtilisee) = val1
val1 = ""


Je pense ici que ça pourrait fonctionner comme ceci :
en déclarant DerniereLigneUtilisee comme ceci : DerniereLigneUtilisee = Range("B" & Rows.Count).End(xlUp).Row


Sub CopiePaste_bis()
Dim DerniereLigneUtilisee as Integer
DerniereLigneUtilisee = Range("B" & Rows.Count).End(xlUp).Row
Range("B4:H & DerniereLigneUtilisee").Copy '(où B4 est la 1ere cellule de ton tableau)
Sheets("Master").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub



PS je débute en VBA ça doit peut être se voir...
 
Bonjour le fil

Une autre syntaxe possible
VB:
Sub CopiePaste_Ter()
Dim Source As Range
With Sheets("Template")
Set Source = Range(.[B4], .Cells(Rows.Count, "H").End(xlUp))
End With
Source.Copy
Sheets("Master").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub
 
- 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

Discussions similaires

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