Bonjour à tous !

Je cherche une macro permettant de copier une ligne sélectionnée d'un premier fichier excel, constituant une base de donnée, et de le coller dans un second fichier excel où j'accumule toutes les lignes pour constituer un sorte de fichier client.

J'ai trouvé cette solution :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Sub transfert_data_fichier_client()
 
Dim Last_Row1 As Long, Last_Row2 As Long
    Dim WB1 As Workbook, WB2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
 
    Set WB1 = ThisWorkbook
    Set ws1 = WB1.Sheets("Tri")
    Set WB2 = Workbooks.Open("D:\Prospection\client.xlsx")
    Set ws2 = WB2.Sheets("Feuil1")
 
    Last_Row1 = ws1.Range("A" & Rows.Count).End(xlUp).Row
    Last_Row2 = ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
 
    ws1.Range("A3:H" & Last_Row1).Copy ws2.Range("A" & Last_Row2)
 
    ws1.Range("A3:H" & Last_Row1).Copy
    ws2.Range("A" & Last_Row2).PasteSpecial Paste:=xlPasteValues
 
End Sub
Toutefois cette solution est trop limitée : je ne souhaite pas rentrer dans le code pour modifier la ligne à chaque copier/coller.

A ce stade, j'ai imaginé deux solutions :
- Copier/coller une ligne sélectionnée (ligne active);
- Définir une sélection dynamique en fonction du numéro de la ligne (par exemple copier la ligne Ai:H), à définir avec une boite de dialogue par exemple.

J'ai cherché des applications mais sans grand succès car je suis encore assez débutant en VBA.
Quelle solution est la plus simple à mettre en place ? Avez vous des éléments pour m'aider ?

En vous souhaitant une bonne journée !