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 51 52 53 54 55 56 57 58
| Dim vAFeuille(1 To 2) As Integer
Dim vBFeuille(1 To 2) As Integer
Dim vCFeuille(1 To 2) As Integer
' [... CODE ...]
' vAFeuille, vBFeuille, vCFeuille contiennent maintenant les numéros des colonnes
' contenant les champs A, B et C à tester, et ce sur chaque feuille 1 et 2
' Variables de raccourci pour éviter de manipuler des noms à rallonge dans le code :
Dim vA1 As Date
Dim vA2 As Date
Dim vB1 As Date
Dim vB2 As Date
Dim vC1 As String
Dim vC2 As String
Dim vZ1 As String
Dim vZ2 As String
' Compteur boucle externe :
Dim i As Long
i = 2
' Compteur boucle interne :
Dim j As Long
' Résultat du test :
Dim trouve As Boolean
Do Until (feuille(1).Cells(i, 1) = "") ' On parcourt l'ensemble du tableau feuille 1 jusqu'à la dernière ligne
feuilleResultat.Cells(i, 1) = i ' On écrit le numéro de ligne en cours
vA1 = feuille(1).Cells(i, vAFeuille(1)) ' Raccourci
vB1 = feuille(1).Cells(i, vBFeuille(1)) ' Raccourci
vC1 = feuille(1).Cells(i, vCFeuille(1)) ' Raccourci
j = 1 ' (Ré)initialisation variable boucle interne
trouve = False ' (Ré)initialisation
Do Until (trouve Or feuille(2).Cells(j, 1) = "") ' !!! On parcourt l'ensemble du tableau feuille 2 !!!
j = j + 1
vA2 = feuille(2).Cells(i, vAFeuille(2)) ' Raccourci
vB2 = feuille(2).Cells(i, vBFeuille(2)) ' Raccourci
vC2 = feuille(2).Cells(i, vCFeuille(2)) ' Raccourci
trouve = ((vA1 = vA2) And (vB1 = vB2) And (vC1 = vC2)) ' test sur les trois colonnes
Loop
If trouve Then
vZ(1) = feuille(1).Cells(i, vZFeuille(1)) ' Raccourci
vZ(2) = feuille(2).Cells(i, vZFeuille(2)) ' Raccourci
feuilleResultat.Cells(i, 3) = j
feuilleResultat.Cells(i, 2) = vZ(1)
feuilleResultat.Cells(i, 4) = vZ(2)
' Mise en évidence si ça correspond bien :
If (vZ(1) Like vZ(2)) Then
feuilleResultat.Cells(i, 2).Interior.ColorIndex = 4
feuilleResultat.Cells(i, 4).Interior.ColorIndex = 4
Else
feuilleResultat.Cells(i, 2).Interior.ColorIndex = 3
feuilleResultat.Cells(i, 4).Interior.ColorIndex = 3
End If
End If
i = i + 1
Loop |
Partager