Sub ColourCircles()
Dim wks As Worksheet
Dim rngData As Range, rngCell As Range
Dim shp As Shape
Dim dblTarget
' change target value as required
dblTarget = 5
Set wks = ActiveSheet
With wks
Set rngData = .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp))
On Error Resume Next
For Each rngCell In rngData
Set shp = .Shapes("Circle" & rngCell.address(0, 0))
If shp Is Nothing Then
Set shp = .Shapes.AddShape(msoShapeOval, rngCell.Offset(0, 1).Left + 1, _
rngCell.Top, rngCell.Height, rngCell.Height)
shp.Name = "Circle" & rngCell.address(0, 0)
End If
Select Case rngCell.Value
Case Is < dblTarget
shp.Fill.ForeColor.rgB = vbRed
Case dblTarget
shp.Fill.ForeColor.rgB = vbYellow
Case Is > dblTarget
shp.Fill.ForeColor.rgB = vbGreen
Case Else
' probably an error
shp.Fill.ForeColor.rgB = 0
End Select
Set shp = Nothing
Next rngCell
End With
End Sub