Comparaison des valeurs de 2 colonnes

cs_marcopolo2 Messages postés 3 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 11 janvier 2006 - 11 janv. 2006 à 11:15
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 11 janv. 2006 à 12:43
Bonjour à tous,
je dois trouver une solution sur vb excel qui me permet de comparer les valeurs une à une de 2 colonnes et d'identifier par une couleur rouge les valeurs dans la colonne A qui n'existent pas dans la colonne B.
Par exemple:
valeurs dans colonne A : 1;3;5;88;122
valeurs dans colonne B : 8;122;3;1;9;199
le code doit me mettre en rouge dans la colonne A les valeurs 5 et 88.
J'arrive à le faire sur une valeur avec le code suivant mais je bloque pour les autres valeurs de la colonne.
Que faire ?
Merci d'avance.
Set critereCherche = Application.InputBox(Prompt:="Sélectionnez le critère à trouver", Type:=(8))
Set plageCherche = Application.InputBox(Prompt:="Sélectionnez la plage de données à modifier", Type:=(8))
Set c = plageCherche.Find(critereCherche, LookIn:=xlValues)


For Each Item In plageCherche
On Error Resume Next
If Item.Value = c Then
Item.Select
With Selection
.Font.ColorIndex = 3

End With
Else
Item.Select
With Selection
.Font.ColorIndex = 1

End With
End If
Next

2 réponses

cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
11 janv. 2006 à 12:35
Bonjour,


Voici un petit exemple, à adapter selon tes besoins :

Dim MaCellule As Range


'Parcourir les cellules de la colonne A
For Each MaCellule In Range("A1:A" & Range("A65536").End(xlUp).Row)
'Rechercher la valeur dans la colonne B
If Range("B:B").Find(MaCellule.Value, LookIn:=xlValues) Is Nothing Then
'Pas trouvé -> mettre en rouge
MaCellule.Font.ColorIndex = 3
Else
'Trouvé -> mettre en noir
MaCellule.Font.ColorIndex = 1
End If
Next

wape
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
11 janv. 2006 à 12:43
Je ne vais pas tout de macher mais cela pourra t'aider

Dim Resultat() as String
Dim i as Integer

Redim Resultat(0)
Resultat = Split("1;3;5;88;122", ";")

For i = 0 To Ubound(Resultat)
MsgBox Resultat(i)
Next i

Tu obtiendra 5 MsgBox contenant respectivement 1 puis 3 puis 5 puis 88 puis 122

Fais de même avec la deuxieme cellule et compare ensuite chaque valeurs

Bonne prog
++
0
Rejoignez-nous