Bonsoir Loic,
je pense que cela devrait d'aider...
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, en autant qu'il soit de mêmes dimensions.
Il ne te reste plus qu'à renseigner dans la procédure les noms des
feuilles et plage 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 Sub
Il faut un peu l'adapter à ton besoin mais c'est ça l'entraide
A plus,