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 :
Toutefois cette solution est trop limitée : je ne souhaite pas rentrer dans le code pour modifier la ligne à chaque copier/coller.
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
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 !
Partager