Différences entre deux tableaux
Tes 2 tableaux doivent être de même dimension (ligne et colonne) Chacun des 2 tableaux (rg1 et rg2 ) peut être situé n'importe où dans leur feuille respective, pour autant qu'il soit de mêmes dimensions.
Il ne te reste plus qu'à renseigner dans la procédure les noms des feuilles et plages de cellules des 2 tableaux comparatifs et ceux du tableau des résultat :
Tableau des résultats est construit de cette manière :
En colonne A1 : Adresse du premier tableau
B1 : Valeur du premier tableau à l'adresse de A1
En colonne C1 : Valeur du tableau 2
D1 : Valeur du tableau 2 en C1
sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1
Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2
Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le même nombre de lignes"
exit sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le même nombre de colonnes"
exit sub
End If
Tblo1 = RG1: Tblo2 = RG2: D = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C = C + 1
Rg3(C, D) = RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) = Tblo1(A, B)
Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) = Tblo2(A, B)
End If
Next
Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
end subAuteur : Denis Michon
Mots clefs associés à cette page : comparer, différent, tableau
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
