Différences entre deux tableaux

J'ai deux tableaux situés sur deux feuilles différentes (même taille). Je voudrais sur une troisième feuille afficher uniquement les différences entre ces 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 sub

Auteur :

Mots clefs associés à cette page : , ,