VBA setfocus no funciona

Tengo esta sencilla validación.. Y no logro que el SetFocus me de resultado.
Siempre se pasa al siguiente textbox. He probado de todo, y no hay caso.

Private Sub Text_Fecha_AfterUpdate()
If Not IsDate(Text_Fecha.Value) Then
MsgBox ("ingrese en formato fecha dd/mm/aa")
Text_Fecha = ""
Text_Fecha.SetFocus
End If
End Sub

¿Alguna solución?

1 respuesta

Respuesta
4

prueba mejor con el evento exit. En mi ejemplo tienes que sustituir textbox1 por el nombre de tu textbox.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1) Then
MsgBox "no es fecha" 
TextBox1 = Empty
Cancel = True
TextBox1.SetFocus
End If
End Sub

recuerda finalizar y puntuar

Hola, gracias por responder.

Probé con tu código y parece que funciona mejor.. es decir, luego del mensaje el cursor no pasa al siguiente textbox.. pero tampoco me queda habilitado en el textbox de la fecha. Me explico?


Sale el Msgbox... "no es fecha".. preciono aceptar y el cursor desaparece. La única forma de volver a escribir una fecha es activando el cursor con el mouse. Mi intención es que luego del mensaje uno toca enter "aceptar".. y el cursor ya esté listo para escribir una nueva fecha.

Alguna idea al respecto?

Revisa como lo has anotado. El código que te he mandado funciona perfectamente, es decir, si no es fecha lanza un mensaje y se queda el cursor en el textbox

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas