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

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

  • TEST.xlsm
    17.7 KB · Affichages: 11
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)

Staple1600

XLDnaute Barbatruc
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)
 

Nella66

XLDnaute Nouveau
ç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 !
 

dupuy.mathias

XLDnaute Nouveau
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...
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…