comparaison et agrégation (macro-excel)
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)
Code:
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 |
Je pense que ce sont surement les 3 boucles imbriquées qui posent problème. En vous remerciant ;)
Bonne journée