Comparer colonne - problème avec <>

Romain31

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à comparer les données de la colonne A de la feuille 1 et celles de la colonne A de la feuille 2, quelque soient leur place dans la colonne.
On ne tient donc pas compte de leur position, on ne les compare pas par paire.
La macro données_identiques fonctionne bien et colorie sur la feuille 1es valeurs qui se retrouvent sur la feuille 2 (certaines sont placées au même endroit sur les deux feuilles, d'autres non).

Je souhaite faire l'inverse, et colorier en feuille 1 les données différentes.
Je pensais qu'en conservant ce code et en employant <> au lieu du signe =, cela fonctionnerait.

If Sheets("Feuil1").Range("a2").Offset(i, 0) <> Sheets("Feuil2").Range("a2").Offset(c, 0) Then

Sheets("Feuil1").Range("a2").Offset(i, 0).Interior.ColorIndex = 7

Surprise, toutes les valeurs sont coloriées.
Où est l'erreur, avez-vous une solution ?

Je joins le fichier.

Merci pour votre aide, et bonne journée.
 

Pièces jointes

  • comparaison colonne.xls
    38 KB · Affichages: 43

Modeste

XLDnaute Barbatruc
Re : Comparer colonne - problème avec <>

Bonjour Romain31,

Juste parce que j'ai un doute ... on est d'accord qu'une mise en forme conditionnelle qui utiliserait la fonction NB.SI te permettrait d'obtenir le même résultat?

Edit: Salut Marc :)
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Comparer colonne - problème avec <>

Bonjour Romain, Bonjour Modeste :)

comme tu ne tiens pas compte de leur position, tu compare chaque donnée des 2 feuilles 2 à 2
il y a forcément un moment où tu vas tomber sur une valeur différente sur l'autre feuille, et donc tu colories tout
il ne faut colorier que si toutes les comparaisons sont différentes

peut-être enlever la couleur sera plus simple

Code:
    For i = 0 To Sheets("Feuil1").Range("a65000").End(xlUp).Row - 2
           
        For c = 0 To Sheets("Feuil2").Range("a65000").End(xlUp).Row - 2
        
            Sheets("Feuil1").Range("a2").Offset(i, 0).Interior.ColorIndex = 7
            
            If Sheets("Feuil1").Range("a2").Offset(i, 0) = Sheets("Feuil2").Range("a2").Offset(c, 0) Then
            
                Sheets("Feuil1").Range("a2").Offset(i, 0).Interior.ColorIndex = xlNone
                Exit For
                
            End If
            
        Next
    Next

Mais la remarque de Modeste est parfaitement justifiée ;)
 

Romain31

XLDnaute Occasionnel
Re : Comparer colonne - problème avec <>

Merci tototiti2008 pour ce code qui marche impec.
Effectivement, comme le dit modeste, j'aurais pu le faire avec une formule et une MFC.
J'avais mis i = variant comme type de variable mais je pense qu'il y a mieux.
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 331
Membres
103 815
dernier inscrit
SANOU ANSELME