Conditional formating using VBA
Hi Tracey,
I asume your users will enter a value in the range("I43:J76").
In that case you case use the Worksheet_change(Byval Target as Range
function like so:
Private Sub Worksheet_Change(ByVal Target As Range)
' Check if only 1 cells value is changed
If Target.Cells.Count 1 Then Exit Sub
' Check if changed cell has a value
If IsEmpty(Target) Then Exit Sub
' Check if changed cell has numeric value
If Not IsNumeric(Target.Value) Then
' Change font color
Target.Font.Color = vbRed
Exit Sub
Else
Target.Font.Color = vbBlack
End If
' Check if changed cell is specific given range
If Intersect(Target, Range("I43:J76")) Is Nothing Then Exit Sub
Select Case Target.Value
Case 0.91 To 1
Target.Offset(-37, 0).Interior.Color = vbGreen
Case 0.76 To 0.91
Target.Offset(-37, 0).Interior.Color = vbBlue
Case 0.5 To 0.76
Target.Offset(-37, 0).Interior.Color = vbYellow
Case Else
Target.Offset(-37, 0).Interior.Color = vbRed
End Select
End Sub
HTH,
Wouter
|