This should catch the x now.
Sub LookAtIt()
Dim c As Range
For Each c In Range("d2", Range("D65536").End(xlUp))
If Not IsEmpty© Then
If Val(c.Value) > 7 And InStr(1, c.Value, ";") = 0 Then '<- check for numeric values only
If MsgBox("Order of Entry; You have a number higher than 7 in cell " & c.Address, 1, "Out of Parameters") = vbCancel Then
c.Select
Exit Sub
End If
ElseIf Len(CStr(c.Value)) > 1 Then
If Val(c.Value) <= 7 And InStr(1, c.Value, ";") = 0 Then
If MsgBox("Order of Entry; You have a number higher than 7 in cell " & c.Address, 1, "Out of Parameters") = vbCancel Then
c.Select
Exit Sub
End If
End If
ElseIf Len(CStr(c.Value)) = 1 Then
If Val(c.Value) = 0 And InStr(1, c.Value, ";") = 0 Then
If MsgBox("Order of Entry; You have a number higher than 7 in cell " & c.Address, 1, "Out of Parameters") = vbCancel Then
c.Select
Exit Sub
End If
End If
End If
End If
Next c
End Sub