Pon esta macro en los eventos de tu hoja
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Range("D9")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
calle = UCase(Target)
If InStr(1, calle, "X") = 0 Then
MsgBox "No es correcta la nomenclatura de la calle, falta la 'X'", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
calles = Split(calle, "X")
n1 = Trim(calles(0))
If Not IsNumeric(n1) Then
MsgBox "La PRIMERA calle no es un número", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
n2 = Trim(calles(1))
If Not IsNumeric(n2) Then
MsgBox "La SEGUNDA calle no es un número", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
n1 = Val(n1)
n2 = Val(n2)
If Application.IsEven(n1) Then
If n1 > 60 Then
MsgBox "La PRIMERA calle es mayor a 60", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
Else
If n1 > 115 Then
MsgBox "La PRIMERA calle es mayor a 115", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
End If
If Application.IsEven(n2) Then
If n2 > 60 Then
MsgBox "La SEGUNDA calle es mayor a 60", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
Else
If n2 > 115 Then
MsgBox "La SEGUNDA calle es mayor a 115", vbCritical, "ERROR DE CALLE"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
End If
End If
End Sub