Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque nouvelle édition dans l'onglet
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
If Target.Address <> "$A$1" Then Exit Sub 'si l'édition a lieu ailleurs qu'en A1, sort de la procédure
If Target.Value = "" Then Target.Interior.ColorIndex = xlNone: Exit Sub 'si la cellule est effacée, supprime la couleur, sort de la procédure
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = .Range("A1:A" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
Set r = pl.Find(Target.Value, , xlValues, xlWhole) 'définit la recherche r (Recherche la valeur tapée en A1 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
Target.Interior.ColorIndex = 4 'colore A1 de vert
Else 'sinon
Target.Interior.ColorIndex = 3 'colore A1 de rouge
End If 'fin de la condition
End Sub