ComboBox condicionado a contenido de otro ComboBox

Tengo un archivo excel - ver documento adjunto - y quería consultar si existe la posibilidad que para el UserForm2 se coloquen combobox mandatarios o que se deshabiliten dependiendo de lo que haya seleccionado el usuario en el combobox2.

Tengo un código que hace mandatorio la sección Generales/ Persona Natural pues sin importar lo que se haya seleccionado en el combobox2 se deben completar.

Ejemplo #1

Si el usuario escoge Persona Natural solo se deben poder completar los campos de la sección Generales / Persona Natural.

Ejemplo #2

Si el usuario escoge Persona Jurídica solo se deben poder completar los campos de la sección Generales / Persona Natural y de la sección Persona Jurídica.

1 Respuesta

Respuesta
1

En el evento del combo "Tipo de cuenta" tienes que poner las indicaciones, por ejemplo:

Private Sub ComboBox2_Change()
'Por.Dante Amor
    Select Case ComboBox2
        Case "Persona natural"
            ComboBox3.Visible = False
            ComboBox4.Visible = True
        Case "Persona jurídica"
            ComboBox3.Visible = True
            ComboBox4.Visible = False
    End Select
End Sub

Con esta opción tienes que hacer visibles los combos que quieres e invisibles los que no quieres

Para que el efecto sea completo, cuando cargas el combo2, al inicio del formulario, haz invisible a todos los combos, ejemplo:

Private Sub UserForm_Activate()
'Por.Dante Amor
    ComboBox2.AddItem "Persona natural"
    ComboBox2.AddItem "Persona jurídica"
    ComboBox3.Visible = False
    ComboBox4.Visible = False
End Sub

Si quieres que los combos estén visibles, cambia la propiedad visible por enabled. Con la propiedad enabled, podrás ver el combo, pero no podrás capturar hasta que lo habilites seleccionando un datos desde el combobox2

Private Sub ComboBox2_Change()
'Por.Dante Amor
    Select Case ComboBox2
        Case "Persona natural"
            ComboBox3.Enabled = False
            ComboBox4.Enabled = True
        Case "Persona jurídica"
            ComboBox3.Enabled = True
            ComboBox4.Enabled = False
    End Select
End Sub
Private Sub UserForm_Activate()
'Por.Dante Amor
    ComboBox2.AddItem "Persona natural"
    ComboBox2.AddItem "Persona jurídica"
    ComboBox3.Enabled = False
    ComboBox4.Enabled = False
End Sub

Para que un dato sea obligatorio lo deberás hacer cundo presionas un botón. por ejemplo:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If ComboBox2 = "" Then
        MsgBox "Falta capturar el Tipo de cuenta: "
        Exit Sub
    End If
    Select Case ComboBox2
        Case "Persona natural"
            If ComboBox4 = "" Then
                MsgBox "Falta capturar el dato del combo4: "
                Exit Sub
            End If
        Case "Persona jurídica"
            ComboBox3 = ""
                MsgBox "Falta capturar el dato del combo3: "
                Exit Sub
    End Select
End Sub


Dante, eres lo máximo puede hacer lo primero.

Solo que al intentar replicar tu última respuesta me sale error.

Pusiste MsBox, te falta la letra "g"

Tiene que se MsgBox

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas