Assuming that you populate your valid "lookup" list of numbers on sheet2 col A and that is is sorted alphabetically!
try this event code.....
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Address = Sheets("sheet2").Range("z1") Then
Exit Sub
Else
End If
user_entered = Range(Sheets("sheet2").Range("z1"))
On Error GoTo err_hit
x = Application.WorksheetFunction.Match(Range(Sheets("sheet2").Range("z1")), Sheets("sheet2").Range(Sheets("sheet2").Range("valid_list").Address), 0)
Exit Sub
err_hit:
validate_list
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Sheets("sheet2").Range("z1") = ActiveCell.Address
With Range(Sheets("sheet2").Range("z1")).Validation
.Delete
End With
Application.EnableEvents = True
End Sub
Sub validate_list()
Application.EnableEvents = False
If IsEmpty(Range(Sheets("sheet2").Range("z1"))) Then
c_val = "Invalid_Entry"
Else
c_val = Range(Sheets("sheet2").Range("z1"))
End If
For Each c In Sheets("sheet2").Range("valid_list")
c_Text = c.Text
If Left(CStr(c_Text), 1) = Left(c_val, 1) And start_it = 0 Then
start_it = c.Row
Else
End If
If start_it > 0 And Left(c_Text, 1) = Left(c_val, 1) Then
stop_it = c.Row
Else
End If
Next
If start_it > 0 And stop_it > 0 Then
ActiveWorkbook.Names.Add Name:="list_window", RefersToR1C1:= _
"=Sheet2!R" + Trim(CStr(start_it)) + "C1:R" + Trim(CStr(stop_it)) + "C1"
With Range(Sheets("sheet2").Range("z1")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=list_window"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
With Range(Sheets("sheet2").Range("z1")).Validation
.Delete
End With
MsgBox ("No Similar items found in the Valid_List Range " + Sheets("sheet2").Range("valid_list").Address)
Range(Sheets("sheet2").Range("z1")) = "Invalid_Entry"
End If
Range(Sheets("sheet2").Range("z1")) = "Invalid_Entry"
Range(Sheets("sheet2").Range("z1")).Select
Application.EnableEvents = True
End Sub