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 :D

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

Statistiques des forums

Discussions
311 729
Messages
2 081 966
Membres
101 852
dernier inscrit
dthi16088