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