Bonsoir,
J'avance un peu... Voici un code qui fonctionne, mais qui ne donne pas encore tout à fait ce que je souhaite...
Pouvez-vous m'aider une fois de plus ?
Merci d'avance !!
En fait, je voudrais qu'à chaque fois que je fais une modif dans la colonne 3 les données soient mises en mémoire dans le tableau... Pour l'instant, je n'arrive qu'à mettre la dernière modif dans le tableau.
J'ai essayé de faire une boucle For Each, mais je ne m'en sort pas... Il y a peut-être une autre méthode ?
Alfred
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Private Tableau(10, 2) Private resul, resul2 As String Sub Worksheet_change(ByVal Target As Range) 'On déclare les variables ligneLong et ligneCourt Dim ligneLong, ligneCourt 'Si on modifie une cellule de la colonne 3 If Target.Column = 3 Then 'On récupère l'adresse de la cellule modifiée ligneLong = Target.Address 'On coupe l'adresse pour ne garder que le numéro de la ligne ligneCourt = Mid(ligneLong, 4) 'On met les données de la ligne modifiée dans le tableau i = 1 For i = 1 To 5 resul = "A" & ligneCourt resul2 = "C" & ligneCourt Tableau(i, 1) = Range(resul).Value Tableau(i, 2) = Range(resul2).Value Next End If End Sub Sub BoutonClic() Dim i Dim ialpha As String 'On ouvre le fichier dans lequel on veut coller les données copiées Workbooks.Open ThisWorkbook.Path & "\Fichier1.xls" 'On restitue les données dans la feuille excel i = 1 For i = 1 To 5 ialpha = i + 40 resul = "F" + ialpha resul2 = "C" + ialpha ActiveSheet.Range(resul).Value = Tableau(i, 1) ActiveSheet.Range(resul2).Value = Tableau(i, 2) Next Erase Tableau() End Sub
Partager