Detectar el FOCO del cursor en un Form

En primer lugar agradecer toda la ayuda que los experto, en especial Dante, me esta ofreciendo para hacer realidad mi proyecto.

Quería pedir ayuda acerca de esto. Tengo en un form varios textbox. En el evento Exit de un de ellos pongo un mensaje, si el resto del formulario está sin rellenar, que faltan datos por rellenar.

Solo que cuando salgo del textbox y le doy a un "boton" donde lo que hago es salir sin rellenar nada quiero que salga del formulario sin más. Ocurre que como cuando le doy al botón también lo que hago es salir del textbox así antes de coger el "focus" del botón siempre me sale el mensaje que he puesto de aviso.

Querría salvar esto, que cuando salga del textbox me ponga el mensaje excepto si el "focus" lo voy a llevar a este botón para poder salir.

Private Sub ListVActual_Exit(ByVal Cancel As MSForms.ReturnBoolean)

En este evento le digo que si otro textbox esta vacío porque no ha encontrado un valor que entonces debo rellenarlo.

Dim busco As Object
Set busco = Sheets("MATR_DISP").Range("X3:X" & filas).Find(VActual)
If busco Is Nothing Then
MsgBox "La matricula no tiene IMEI, introduzca otra matrícula del listado"

Salgo del textbox del VEHICULO ACTUAL y si voy al botón de SALIR no consigo evitar este mensaje

¿Es posible? Llevo tiempo intentándolo y no consigo que el mensaje no salga.

Gracias de antemano por la ayuda, de verdad que os estoy muy agradecido.

Moisés.

1 respuesta

Respuesta
1

Esto que comentas:

Ocurre que como cuando le doy al botón también lo que hago es salir del textbox

Cuando presionas el botón, lo primero que estás haciendo es salir del textbox.

Lo que sugiero es que pongas la validación del textbox en un botón, es decir, cuando vayas a guardar o a realizar un proceso, en ese botón valides lo que necesites. Si falta algún dato, entonces no continuar hasta llenar el textbox.

Avísame si necesitas ayuda para validar el textbox.

Hola Dante, muchas gracias.

He hecho otra cosa. He rellenado el textbox con el primer valor de una lista por defecto y forzado el tabulador, así no tenía que llevarme la validación a otro botón y el efecto es el que esperaba.

ListVActual = Sheets("MATR_DISP").Range("X3")
ListVActual.SetFocus
SendKeys "{TAB}"

En lo sucesivo si quiero dejar los campos en blanco tendré que hacer como dices, poner la validación en otro sitio, no en el Exitdel campo a validar.

Como siempre muchas gracias.

Moisés.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas