Comparaison de deux colonnes
Bonjour tout le monde;
je bloque sur un point et je n'arrive pas à avancer j'éspère bien que vous allez m'aider svp.
j'ai cherché sur le forum et j'ai trouvé une solution. en faite j'ai trouvé un sujet trés semblant mais avec des petites modification et je sais pas si j'ai droit de poser ma question dans le sujet de qlqu'un d'autre donc j'ai ouvert une autre conversation.
alors cherche à faire une comparaison sur deux feuilles de mon classeurs de noms de mes clients, le résultat doit être on faite si les noms sont mes même il copie les noms dans la colonne C, mais si les noms changent il doit faire un code couleur pour alerter l'utilisateur que les noms ont changé avec du vert pour ceux qui n'ont pas changé et du rouge qui ceux qui ont changé.( le code couleur doit être dans la feuille 1 car la feuille B est la réference c'est fixe) et copie tous les noms avec les nouveaux noms dans la colonne C.
voilà le code que j'ai trouvé sur le forum:
Sub chercher()
Dim i&, a&, fin&
With Feuil1
fin1 = .Range("A" & Rows.Count).End(xlUp).Row
fin2 = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To fin1
For a = 2 To fin2
If .Cells(i, 1) = .Cells(a, 1) Then
GoTo 1
End If
Next a
.Cells(i, 3) = .Cells(i, 1)
1 Next i
End With
End Sub
je ne sais pas comment dire les couleurs. et je ne vous cache pas je comprend pas le symbole concatenation dans le déclaration. voilà mon fichier, je travaille sur le bouton Comparer.
j'attend vos réponses merci d'avance
Bonsoir,
une proposition de solution
Sub chercher()
Set wsr = Sheets("feuil2") 'référence
Set wsi = Sheets("feuil1") 'à chercher
fin1 = wsi.Range("A" & Rows.Count).End(xlUp).Row ' dernière ligne dans à chercher
fin2 = wsr.Range("A" & Rows.Count).End(xlUp).Row ' dernière ligne dans référence
For i = 2 To fin1 ' on parcourt toutes les lignes à chercherr
Set re = wsr.Range("A1:A" & fin2).Find(wsi.Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole) ' on cherche la valeur à chercher dans référence
If Not re Is Nothing Then
wsi.Cells(i, 1).Interior.Color = vbGreen ' on a trouvé on met en vert
Else
wsi.Cells(i, 1).Interior.Color = vbRed ' on n'a pas trouvé on met en rouge
End If
Next i
End Sub