Dont think It's to do with the values, as it happens when i set it to a cell vallue

[VBA]With LblB1Overall
.Tag = Val(Range("D14").Value)
.Caption = Format(.Tag, "0.00 %")
'If Val(.Tag) < (Range("M3").Value) Then
' .ForeColor = RGB(102, 0, 102) 'purple
'Else
If Val(.Tag) <= (Range("M3").Value) Then
.ForeColor = RGB(255, 102, 0) 'amber
Else
If Val(.Tag) >= (Range("M3").Value) Then
.ForeColor = RGB(0, 255, 0) 'green
' End If
End If
End If
End With[/VBA]