try this...
Code:
Sub update()
Worksheets("Sheet1").Activate
'set first row
r = 2
'set column holding target
t = 2
'set column holding actual score
a = 3
'select starting cell
ActiveSheet.Cells(r, a).Select
'check if cell has a value
Do While ActiveSheet.Cells(r, a).Value <> ""
'calculate difference from target
level = getVal(ActiveSheet.Cells(r, a).Value) - getVal(ActiveSheet.Cells(r, t).Value)
'select colour
Select Case level
Case Is > 0
ActiveSheet.Cells(r, a).Interior.Color = RGB(153, 204, 255)
Case Is = 0
ActiveSheet.Cells(r, a).Interior.Color = RGB(204, 255, 204)
Case Is > -3
ActiveSheet.Cells(r, a).Interior.Color = RGB(255, 204, 0)
Case Is > -4
ActiveSheet.Cells(r, a).Interior.Color = RGB(255, 153, 204)
Case Else
ActiveSheet.Cells(r, a).Interior.Color = RGB(153, 51, 0)
End Select
'increment counter to next row
r = r + 1
'continues to last filled row
Loop
End Sub
Public Function getVal(score As String)
getVal = Val(Left(score, 1)) * 3 + Abs(96 - Asc(Right(score, 1)))
End Function