Bonsoir Meszo,
Tu trouveras en pièce jointe un exemple à adapter pour répondre à ton problème.
=====================================================
Private Sub Worksheet_Change(ByVal Target As Range)
Set RangeCouleurs = Range("A1:F1") '<< A adapter
Set RangeCouleurInconnue = Range("G1") '<< A adapter
Set RangeNoms = Range("A4:A24") '<< A adapter
If Not Intersect(Target, RangeNoms) Is Nothing Then
For Each CelNom In Intersect(Target, RangeNoms)
For Each CelCouleur In RangeCouleurs
CelNom.EntireRow.Interior.ColorIndex = RangeCouleurInconnue.Interior.ColorIndex
If CelNom = CelCouleur Then
CelNom.EntireRow.Interior.ColorIndex = CelCouleur.Interior.ColorIndex
Exit For
End If
Next CelCouleur
Next CelNom
End If
End Sub
=====================================================
Le principe est simple:
Chaque fois que le contenu d'une cellule de la zone "RangeNoms" de la feuille qui contient les noms est modifiée, on compare sa valeurs aux cellules de la zone "RangeCouleurs" qui sert d'échantillon. Celle ci contient les noms à tester et les couleurs à affecter.
Si on trouve égalité, on colorie toute la ligne de la cellule de la zone "RangeNoms" avec la couleur correspondante dans "RangeCouleurs"
Si on ne trouve pas égalité, on colorie toute la ligne de la cellule de la zone "RangeNoms" avec la couleur de la cellule correspondant à la zone "RangeCouleurInconnue"
Remarque :
La zone "RangeCouleur" peut être masquée
Le nombre de nom/couleur (6) peut être augmenté sans difficultés, il suffit de mettre plus de cellules dans la zone "RangeCouleurs" et de modifier le paramètre associé en tête de procédure.
Bon courage pour la suite.
Omicron.