Mise en évidence des différences entre 2 tableaux

egman

XLDnaute Occasionnel
Bonjour à tout le Forum,

je reviens vers vous car j'ai un petit souci sur un code.

Je cherche à mettre en évidence en coloriant les différences entre 2 tableaux (plages de cellules).

Cependant je ne comprends pas très bien car tant que les données des 2 tableaux sont sur la même ligne j'obtiens bien les différences (si il y en a) mais dés que des données identiques sont sur des lignes différentes il m'indique une différence alors les données sont dans les 2 tableaux.

Je cherche en fait à mettre en évidence (coloriées) que les différences, cellule par cellule des 2 tableaux de manière à ce que si j'ai une nouvelle ligne de données par exemple qu'elle soit toute coloriée.

Je ne sais pas trop comment m'y prendre.
Je vous joint un fichier exemple qui sera plus explicite que mon explication.

D'avance MERCI pour votre soutien.
 

Pièces jointes

  • essai_comp.xls
    44.5 KB · Affichages: 105

Robert

XLDnaute Barbatruc
Repose en paix
Re : Mise en évidence des différences entre 2 tableaux

Bonjour Egman, bonjour le forum,

Peut-être comme ça (testé mais pas pris le temps de tout vérifier...) :
Code:
Private Sub CommandButton2_Click()
Dim dl1 As Integer, dl2 As Integer 'déclare les variables dl1 et dl2 (Dernière Ligne)
Dim pl1 As Range, pl2 As Range 'déclare les variables pl1 et pl2 (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Dim x As Byte 'déclare la variable x (incrément)
 
dl1 = Cells(Application.Rows.Count, 1).End(xlUp).Row 'definit la dernière ligne dl1
dl2 = Cells(Application.Rows.Count, 5).End(xlUp).Row 'definit la dernière ligne dl2
Set pl1 = Range("A5:A" & dl1) 'définit la plge pl1
Set pl2 = Range("E5:E" & dl2) 'définit la plge pl2
For Each cel In pl1 'boucle 1 : sur toutes les cellules cel de la plage pl1
    Set r = pl2.Find(cel.Value, , xlValues, xlWhole) 'définit la recherche r (recherche la valeur entière de la cellule dans la plage pl2)
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
        For x = 1 To 2 'boucle 2 : sur les deuc colonnes adjacentes
            'si la cellule à coté de cel est différente de la cellule à coté de r, couleur verte
            If cel.Offset(0, x).Value <> r.Offset(0, x).Value Then r.Offset(0, x).Interior.ColorIndex = 4
        Next x 'prochaine colonne de la boucle 2
    End If 'fin de la confition
Next cel 'prochaine cellule de la boucle 1
End Sub
 

Pièces jointes

  • egman_v01.xls
    47 KB · Affichages: 116

egman

XLDnaute Occasionnel
Re : Mise en évidence des différences entre 2 tableaux

Bonjour Robert,

Tout d'abord MERCI pour ton aide et pour tes explications qui aident bien à la compréhension du code.
Cela marche très bien mais si je peux me permettre (vu mon niveau en VBA) ne serait il pas possible d'indiquer d'une couleur différente les cellules communes aux 2 plages en plus des différences déjà en VERT ?
Je m'explique.
Lorsque j'ai 2 plages de longueur différentes, ce qui serait bien serait de pouvoir voir après le test de comparaison les lignes supplémentaires (si il y en a de la plage la plus longue)
Exemple Plage1 = 50 lignes et Plage2 = 40 lignes
la comparaison s’effectuant sur la plage2 je ne vais voir apparaitre que les différences sur cette plage en VERT mais je ne verrai pas les lignes supplémentaires de la plage1 qui devraient apparaitre comme différences.
C'est pourquoi si j'ai sur la plage2 en Vert les différences et d'une autre couleur les cellules communes aux 2 plages je verrai tout de suite quelles sont les lignes supplémentaires (ou alors dans la plage de comparaison avoir une cellule VERTE en face des lignes supplémentaires de la plage1

Je ne sais pas si c'est réalisable....il existe peut être d'autres solutions auxquelles je n'ai pas pensé.

D'avance MERCI pour ton aide ainsi qu'au soutien de tout le FORUM

A+ Manu
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Mise en évidence des différences entre 2 tableaux

Bonjour Egman, bonjour le forum,

Une version 2 qui devrait convenir. Attention le bouton Comparaison efface en premier les éventuelles couleurs. Tu modifieras si ça te convient pas...
Les valeurs différentes sont en vert, les lignes identiques sont en gris dans la plage pl2. Les lignes uniques sont en jaune dans pl1.
 

Pièces jointes

  • egman_v02.xls
    48.5 KB · Affichages: 214

egman

XLDnaute Occasionnel
Re : Mise en évidence des différences entre 2 tableaux

Bonjour Robert,

MERCI pour les modifications apportées au code.
Cela va me faire gagner beaucoup de temps, c'est super.
Merci aussi pour les explications données dans le code, çà aide beaucoup à la compréhension du déroulement du code.

Bonne journée

A+

Manu
 

Discussions similaires

Statistiques des forums

Discussions
312 388
Messages
2 087 876
Membres
103 672
dernier inscrit
ammarhouichi