Evitar pasar a otro formulario sin que se haya terminado de capturar todos los datos

Tengo un formulario de captura y lo que quiero es que no puedan pasar a otro formulario sin que haya terminado de registrar toda la información necesaria del primer formulario.

Ya tengo una macro pero solo me manda los avisos que indican que hace falta capturar datos pero me abre el siguiente formulario

Mi Usefrorm1 es el de captura y al terminar de llenar la información captura la informacion en una hoja de excel y llama al Userform3. Espero haber sido claro en mi consulta. Anexo mi macro

Private Sub CommandButton2_Click()
If TextBox5.Text = "" Then
        MsgBox "Ingrese fecha"
        Else
        If Código.Text = "" Then
        MsgBox "Ingrese su numero de Registro"
        Else
If Nombre.Text = "" Then
        MsgBox "Ingrese nombre"
        Else
            If Apellidos.Text = "" Then
            MsgBox "Ingrese apellidos"
            Else
                If DNI.Text = "" Then
                MsgBox "Ingrese numero de registro"
                Else
                If ComboBox3 = "" Then
                MsgBox "Seleccione un Tipo de Falla"
                Else
                If ComboBox1 = "" Then
                MsgBox "Seleccione un Aplicativo"
                Else
                If ComboBox2 = "" Then
                MsgBox "Seleccione un Dispositivo"
                Else
                If TextBox9.Text = "" Then
        MsgBox "Ingrese una Posicion"
        Else
                Worksheets("Hoja3").Select
                ult1 = Cells(Rows.Count, 1).End(xlUp).Row
                ult1 = ult1 + 1
                Cells(ult1, 1) = Nombre.Text
                Cells(ult1, 2) = Apellidos.Text
                Cells(ult1, 3) = DNI.Text
                Cells(ult1, 4) = ComboBox3.Value
                Cells(ult1, 6) = ComboBox2.Value
                Cells(ult1, 5) = ComboBox1.Value
                Cells(ult1, 8) = TextBox9.Text
                Cells(ult1, 9) = TextBox5.Text
                Cells(ult1, 10) = TextBox10.Text
                Cells(ult1, 7) = OptionButton1.Caption
                Cells(ult1, 7) = OptionButton2.Caption
                End If
                End If
                End If
            End If
        End If
        End If
        End If
                End If
                End If
        UserForm3.Show
End Sub

1 Respuesta

Respuesta
1

Te anexo una opción:

Private Sub CommandButton2_Click()
    If TextBox5.Text = "" Then
        MsgBox "Ingrese fecha"
        TextBox5.SetFocus
        Exit Sub
    End If
    If Código.Text = "" Then
        MsgBox "Ingrese su numero de Registro"
        Código.SetFocus
        Exit Sub
    End If
    If Nombre.Text = "" Then
        MsgBox "Ingrese nombre"
        Nombre.SetFocus
        Exit Sub
    End If
    If Apellidos.Text = "" Then
        MsgBox "Ingrese apellidos"
        Apellidos.SetFocus
        Exit Sub
    End If
    If DNI.Text = "" Then
        MsgBox "Ingrese numero de registro"
        DNI.SetFocus
        Exit Sub
    End If
    If ComboBox3 = "" Then
        MsgBox "Seleccione un Tipo de Falla"
        ComboBox3.SetFocus
        Exit Sub
    End If
    If ComboBox1 = "" Then
        MsgBox "Seleccione un Aplicativo"
        ComboBox1.SetFocus
        Exit Sub
    End If
    If ComboBox2 = "" Then
        MsgBox "Seleccione un Dispositivo"
        ComboBox2.SetFocus
        Exit Sub
    End If
    If TextBox9.Text = "" Then
        MsgBox "Ingrese una Posicion"
        TextBox9.SetFocus
        Exit Sub
    End If
    '
    Worksheets("Hoja3").Select
    ult1 = Cells(Rows.Count, 1).End(xlUp).Row
    ult1 = ult1 + 1
    Cells(ult1, 1) = Nombre.Text
    Cells(ult1, 2) = Apellidos.Text
    Cells(ult1, 3) = DNI.Text
    Cells(ult1, 4) = ComboBox3.Value
    Cells(ult1, 6) = ComboBox2.Value
    Cells(ult1, 5) = ComboBox1.Value
    Cells(ult1, 8) = TextBox9.Text
    Cells(ult1, 9) = TextBox5.Text
    Cells(ult1, 10) = TextBox10.Text
    Cells(ult1, 7) = OptionButton1.Caption
    Cells(ult1, 7) = OptionButton2.Caption
    UserForm3.Show
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Esta sería otra opción

Private Sub CommandButton2_Click()
'Act.Por.Dante Amor
    'Nombre de los controles
    vcs = Array("TextBox5", "Código", "Nombre", "Apellidos", "DNI", _
                "ComboBox3", "ComboBox1", "ComboBox2", "TextBox9")
    'mensaje por control
    vtx = Array("fecha", "su numero de Registro", "nombre", "apellidos", "número de registro", _
                "Tipo de Falla", "Aplicativo", "Dispositivo", "Posición")
    '
    For i = LBound(vcs) To UBound(vcs)
        If Me.Controls(vcs(i)) = "" Then
            MsgBox "Ingrese " & vtx(i), vbExclamation, "VALIDACIÓN CAPTURA"
            Me.Controls(vcs(i)).SetFocus
            Exit Sub
        End If
    Next
    '
    Worksheets("Hoja3").Select
    ult1 = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(ult1, 1) = Nombre.Text
    Cells(ult1, 2) = Apellidos.Text
    Cells(ult1, 3) = DNI.Text
    Cells(ult1, 4) = ComboBox3.Value
    Cells(ult1, 6) = ComboBox2.Value
    Cells(ult1, 5) = ComboBox1.Value
    Cells(ult1, 8) = TextBox9.Text
    Cells(ult1, 9) = TextBox5.Text
    Cells(ult1, 10) = TextBox10.Text
    Cells(ult1, 7) = OptionButton1.Caption
    Cells(ult1, 7) = OptionButton2.Caption
    UserForm3.Show
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

¡Gracias!  

Justo lo que necesitaba,

Saludos.!!

Disculpa tanta molestia pero me puedes ayudar a corregir este detalle, resulta que dentro de ese mismo código capturo la información en una hoja de excel . pero mi OptionButton1 y OptionButton2 van en una misma celda, pero cuando capturo la información, no importa cual seleccione siempre se registra el OptionButton2.

Ninguna molestia, te anexo la actualización

Private Sub CommandButton2_Click()
'Act.Por.Dante Amor
    'Nombre de los controles
    vcs = Array("TextBox5", "Código", "Nombre", "Apellidos", "DNI", _
                "ComboBox3", "ComboBox1", "ComboBox2", "TextBox9")
    'mensaje por control
    vtx = Array("fecha", "su numero de Registro", "nombre", "apellidos", "número de registro", _
                "Tipo de Falla", "Aplicativo", "Dispositivo", "Posición")
    '
    For i = LBound(vcs) To UBound(vcs)
        If Me.Controls(vcs(i)) = "" Then
            MsgBox "Ingrese " & vtx(i), vbExclamation, "VALIDACIÓN CAPTURA"
            Me.Controls(vcs(i)).SetFocus
            Exit Sub
        End If
    Next
    '
    Worksheets("Hoja3").Select
    ult1 = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(ult1, 1) = Nombre.Text
    Cells(ult1, 2) = Apellidos.Text
    Cells(ult1, 3) = DNI.Text
    Cells(ult1, 4) = ComboBox3.Value
    Cells(ult1, 6) = ComboBox2.Value
    Cells(ult1, 5) = ComboBox1.Value
    Cells(ult1, 8) = TextBox9.Text
    Cells(ult1, 9) = TextBox5.Text
    Cells(ult1, 10) = TextBox10.Text
    If OptionButton1 Then wcap = OptionButton1.Caption
    If OptionButton2 Then wcap = OptionButton2.Caption
    Cells(ult1, 7) = wcap
    UserForm3.Show
End Sub

sal u dos

Excelente! ya quedo resuelto, te agradezco el apoyo, aun tengo otra consulta sobre la misma macro, si quisiera ingresar los OptionButton1 y OptionButton2 a la validación de captura, como quedaría la macro?

Con mucho gusto te ayudo con todas tus peticiones.

Cea una nueva pregunta en el tema de microsoft Excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas