Bonjour,
Je vous explique mon problème. Je travaille donc sous excel, en fait j'ai deux fichiers de données dans deux feuilles différentes avec une colonne commune. Ce que je souhaite réalisé c'est comparer ces deux colonnes et lorsque elle sont identiques copier les données de la deuxième feuille sur la première bien évidemment sur la ligne qu'elles ont en communes. J'ai réalisé une macro qui fonctionne sur quelques lignes mais pas sur mes données réelles.(1500 lignes)
Je pense que ce sont surement les 3 boucles imbriquées qui posent problème. En vous remerciant
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 Sub Comparer() Dim ws1 As Worksheet, ws2 As Worksheet, Maligne As Variant, Maligne2 As Variant, Macolonne As Variant, Macolonne2 As Variant, i2, i3, k, kk, z Set ws1 = Worksheets(1) Set ws2 = Worksheets(2) Set ws3 = Worksheets(3) Maligne = ws1.Range("A1").End(xlDown).Address Maligne = ws1.Range(Maligne).Row Maligne2 = ws2.Range("A1").End(xlDown).Address Maligne2 = ws2.Range(Maligne2).Row Macolonne = ws1.Range("A1").End(xlToRight).Address Macolonne = ws1.Range(Macolonne).Column Macolonne2 = ws2.Range("A1").End(xlToRight).Address Macolonne2 = ws2.Range(Macolonne2).Column With ws1 'on parcours la colonne dans la première feuille For k = 1 To Maligne z = .Range("A" & k) 'on parcours la colonne dans la deuxième feuille For kk = 1 To Maligne2 'on compare avec la valeur de la première feuille If ws2.Range("A" & kk) = z Then i3 = Macolonne 'on écrit les données correspondante For i2 = 2 To Macolonne2 i3 = i3 + 1 ws1.Cells(k, i3).Value = ws2.Cells(kk, i2).Value Next End If Next Next End With End Sub![]()
Bonne journée
Partager