Two options
Private Sub Worksheet_Change(ByVal Target As Range)
'Assumes all changes are by the user entering a value
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Prevents running on simultaneous changes
With Target
Select Case .Value
Case Is > Sheets("Instructions").Range("B4")
.Interior.ColorIndex = 3
Case "": .Interior.ColorIndex = 45
End Select
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range 'Cell is a keyword, do not use Keywords as variables
Dim DataRange As Range
Dim Maxx As Double
Set DataRange = Intersect(Target, Range("A:A"))
If DataRange Is Nothing Then Exit Sub
Maxx = Sheets("Instructions").Range("B4").Value
'Why look it up more than once
For Each Cel In DataRange
With Cel
Select Case .Value
Case Is > Maxx
.Interior.ColorIndex = 3
Case "": .Interior.ColorIndex = 45
End Select
End With
Next Cel
End Sub