Perhaps this:
Private Sub Worksheet_Change1(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
If Range("B2") >= Range("A2") Then Exit Sub
Range("B2").Select
MsgBox "The High Control Value is less than the Low Control."
Application.EnableEvents = False
Range("B2").ClearContents
Application.EnableEvents = True
End Sub
Note that this goes in the Worksheet module, not the Workbook module.
If you want B2 fixed before the user is allowed to change anything else, then,
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B2") >= Range("A2") Then Exit Sub
Application.Undo
Range("B2").Select
MsgBox "The High Control Value is less than the Low Control."
Application.EnableEvents = False
Range("B2").ClearContents
Application.EnableEvents = True
End Sub
Also be aware that when the change event changes the worksheet (like clearing the contents of B2), Excel flushes the Undo buffer, which may aggravate users.
Bookmarks