Now that I know you like the idea, here is something that will fit your workbook better, I think.
The original was based on "A", "B", "C" ... , and required you to hard code the column number and row number(s) it should act on.
The revised is based on position in the validation list, and will act on a change to any cell that has a validation list on the worksheet (and not any other cell in the worksheet).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim matchRow As Long
'apply this routine ONLY to cells that have validation lists
On Error GoTo leave
If Target.Validation.Type <> 3 Then Exit Sub
'attempt to find match with validation list
Set rng = Range(Target.Validation.Formula1)
On Error Resume Next
matchRow = 0
matchRow = Application.WorksheetFunction.Match(Target.Value, rng, 0)
If Err Or matchRow = 0 Then
'no match ?!?; set font color to black and exit
Err.Clear
Target.Offset(0, 1).Font.ColorIndex = 1 'Black
GoTo leave
End If
'we found a match, set font color in next column
On Error GoTo leave
Select Case matchRow
Case 1
Target.Offset(0, 1).Font.ColorIndex = 3 'Red
Case 2
Target.Offset(0, 1).Font.ColorIndex = 10 'green
Case 3
Target.Offset(0, 1).Font.ColorIndex = 13 'violet
Case 4
Target.Offset(0, 1).Font.ColorIndex = 53 'Brown
Case 5
Target.Offset(0, 1).Font.ColorIndex = 5 'Blue
Case 6
Target.Offset(0, 1).Font.ColorIndex = 46 'Orange
End Select
leave:
If Err Then Err.Clear
End Sub
Bookmarks