I can think of 2 ways to do this. If you have a sheet just to define the colors, you can use conditional formatting. Create a new sheet and rename it Colors. Then across the top, make a column for each color you'll use. If I understand your response correctly, there will be at most 25 columns. Underneath each color, put the names of the people who will get that color. Then go back to the column where you want the colors to appear (I'll assume column G for now), select it, select Conditional Formatting --> New Rule . . . --> Use a formula. Then enter
Code:
=MATCH(G1,Colors!$B:$B,0)
in the formula box, and select the format to match the color. The G1 should match the column you selected, the $B:$B should match the color column from the Colors sheet. You'll have to repeat this for up to 25 colors, but there's no VBA involved, which matters to some people.
Option 2 involves a VBA macro. I assume your name column is A, the colors is column B, and the column to get the colors is column G. Open your spreadsheet, Open the VBA editor (Alt-F11), double-click on your sheet in the navigation pane on the left (like "Sheet1"), then paste this macro:
Code:
Private Sub worksheet_change(ByVal Target As Range)
Dim r As Integer
If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Target.Interior.Color = xlNone
r = 1
While Cells(r, "A") <> ""
If Target = Cells(r, "A") Then
Target.Interior.Color = Cells(r, "A").Offset(0, 1).Interior.Color
Exit Sub
End If
r = r + 1
Wend
End Sub
Change the "G:G" on the third line to the column you want to get the colors, change the "A" in 3 places below that to match the column with the names. The column with the colors is assumed to be the one right next to that.
Let me know how it works. Good luck!