Que un TextBox de un UserForm no se cambie el foco al presionar "Enter".

No puedo evitar que en un textbox el usuario cargue un valor que no puede utilizarse, pero, una vez cargado, cuando presiona Enter analizo el contenido y si está correcto sigo con el trabajo, de lo contrario limpio el textbox. Yo quisiera que el foco no se vaya del mismo textbox, pero siempre pasa al siguiente valor de tabulación. Solamente necesito que haga eso en el caso de que se hayan cargado bien los datos, sino, debe permanecer el foco en el mismo textbox.
Tengo el office 2010 por si les sirve como dato.

Respuesta
3

 H o  l a : 

Tienes que utilizar el evento Exit, verificas el contenido del textbox, si no es lo que necesitas entonces pones la instrucción Cancel = True, revisa el siguiente ejemplo:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    'Ejemplo de validación
    'Si el contenido es diferente de "hola" no se sale del textbox
    If TextBox1.Value <> "hola" Then
        Cancel = True
    End If
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Me solucionaste la vida! ja ja. Incluso en otro caso, había colocado 2 TextBox uno encima de otro, y manejaba el foco entre ellos para que parezca que permanecía en el mismo, porque al presionar "Enter", por más que uses la función "xxx.Focus" se cambiaba igual. Todo por no haberme hecho usuario de esta página antes, pensé que no había actividad como suele suceder en otros sitios.
Muchas gracias Dante!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas