Set focus siempre en textbox vacio

tengo un formulario el cual contiene 5 frame

En cada frame hay 5 textbox osea que en total tengo 25 textbox (wao je je)

Lo que necesito es que cuando llene los primeros 5 textbox del primer frame

Entonces al activarse de nuevo mi formulario el set focus se pase al frame 2 posicionándose en el 1er textbox que tiene el mismo...

Si en caso de que de los 5 textbox que contiene el frame 4 están llenos de texto y una queda vacía entonces cuando active de nuevo mi formulario el set focus se posicione en el textbox del frame 2 que quedo en blanco..

Y asi sucesivamemte

Bueno lo que es directamente lo que necesito que cada que active mi formulario este siempre se posicione en el textbox que detecte que esta vacío...

1 respuesta

Respuesta
1

H o l a:

Y cómo estás llenado los textbox.

Lo que sucede es que cuando activas el formulario, todos los textbox están en blanco, a menos que, cuando lo activas tengas una rutina que ponga algún texto en los textbox.

Te lo explico en otras palabras, cuando cierras el formulario y vuelves a entrar todos los textbox son borrados.

Pero si estás ocultando el formulario con .Hide y lo vuelves a mostrar con .Show, entonces sería así:

Private Sub UserForm_Activate()
    For Each t In Controls
        If TypeName(t) = "TextBox" Then
            If t.Value = "" Then
                t.SetFocus
                Exit For
            End If
        End If
    Next
End Sub

Los textbox serían revisados en el orden que fueron creados.

Si quieres otro orden de revisión tendrás que poner una lista en el orden que quieres la revisión, por ejemplo:

Private Sub UserForm_Activate()
    If TextBox1 = "" Then
        TextBox1.SetFocus
        Exit Sub
    End If
    If TextBox2 = "" Then
        TextBox2.SetFocus
        Exit Sub
    End If
    If TextBox3 = "" Then
        TextBox3.SetFocus
        Exit Sub
    End If
    If TextBox4 = "" Then
        TextBox4.SetFocus
        Exit Sub
    End If
    '...ect
End Sub

'

S a l u d o s

'

aaaaa!!! ya entendi

Lo que pasa es que los textbox que tengo agarran valor de celdas, es decir que si en el textbox1 agarra el valor de A5 entonces si en A5 tengo algo "FRANCES" entonces cada que inicio el formulario aparece "FRANCES" en el textbox porque tengo programado que eso suceda, entonces quería que si no hay nada en los textbox pues el set focus iría donde no haya nada... tu segundo ejemplo me ayudara GRACIAS DAN! ¿Tengo abierto otra pregunta me pudieses ayudar? Es esta: Modificacion2 de código que traspasa información de una hoja a otra

Recuerda valorar.

Reviso la otra pregunta.

S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas