Private Sub Worksheet_Change(ByVal Target As Range)
'Which cell controls the color?
If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
If Target.Value = 2 Then
Sheets("Sheetname").Shapes("Shapename").Fill.ForeColor.RGB = 2764187
ElseIf Target.Value = 3 Then
Sheets("Sheetname").Shapes("Shapename").Fill.ForeColor.RGB = 1254613
'Keep copying the ElseIf for more criteria...etc
Else
'If you have a "default" color
Sheets("Sheetname").Shapes("Shapename").Fill.ForeColor.RGB = 1000000
End If
End Sub