No permitir ninguna cuadro de texto vacío

Tengo este userform que me ingresa datos en una tabla, pero necesito que todos los textbox y combobox estén completo para poder ingresarlo a la tabla, y necesito que no permita aceptar hasta que todos este completos.

¿Qué cambios debo hacer?

Respuesta
1

Antes vaciar los datos a la hoja pon

If textbox1 ="" anda textbox2="" then

Msgbox "ingrese los datos obligatorios"

Exit sub

End if

Agregar para el resto

Y para combobox has el mismo proceso

2 respuestas más de otros expertos

Respuesta
1

Ejemplos:

Private Sub CommandButton1_Click()
    '
    'Validaciones de textbox
    If TextBox1.Value = "" Then
        MsgBox "Falta el dato1"
        TextBox1.SetFocus
        Exit Sub
    End If
    If TextBox2.Value = "" Then
        MsgBox "Falta el dato2"
        TextBox2.SetFocus
        Exit Sub
    End If
    If TextBox3.Value = "" Then
        MsgBox "Falta el dato3"
        TextBox3.SetFocus
        Exit Sub
    End If
    '
    'Validaciones de combos
    If ComboBox1.Value = "" Then
        MsgBox "Falta el combo1"
        ComboBox1.SetFocus
        Exit Sub
    End If
    If ComboBox2.Value = "" Then
        MsgBox "Falta el combo2"
        ComboBox2.SetFocus
        Exit Sub
    End If
    'Guardar en la hoja
    Set h = Sheets("BASE DATOS")
    u = h.Range("A" & Rows.Count).End(xlUp).Row + 1
    h.Range("C" & u).Value = TextBox1.Value
    h.Range("A" & u).Value = TextBox3.Value
    h.Range("B" & u).Value = TextBox2.Value
    '
    'continuar con los textbox
    '
    '
    'Acá los combos
    h.Range("H" & u).Value = ComboBox1.Value
    h.Range("I" & u).Value = ComboBox2.Value
    '
    'Limpiar controles
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    '
    ComboBox1.Value = ""
    ComboBox2.Value = ""
    '
    TextBox1.SetFocus
    MsgBox "Registro creado", vbInformation, "CREAR"
End Sub

sal u dos

Respuesta
1

Quizá te puede servir "recorrer" todos los "TextBox" y si alguno está vacío pues que te salga un mensaje. Prueba así antes de que se envíe los valores a tus celdas:

Dim Objeto  As Control
For Each Objeto In Me.Controls
    If TypeOf Objeto Is MSForms.TextBox Then
        If Objeto = "" Then
            MsgBox "Falta completar datos, no deje campos vacíos"
            Exit Sub
        End If
    End If
Next Objeto

Lo otro sería un "If" por cada "TextBox"

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas