Como hacer que los combobox ingresen información automáticamente

Tengo 3 combobox y al momentos de que elija una opción del primer combobox me valla seleccionando

Las demas obciones automaticamente.

Si esto se puede hacer pido su ayuda.

El primer combobox tiene como opciones: peticiones, queja, reclamo, sugerencia

Y los demas estan basios.

2 Respuestas

Respuesta

A ver si te ayuda este codigo:

Private Sub UserForm_Activate()
     ComboBox1. AddItem "Peticiones"
     ComboBox1. AddItem "Quejas"
     ComboBox1. AddItem "Reclamos"
    ComboBox1. AddItem "Sugerencias"
End Sub

Private Sub ComboBox1_AfterUpdate()
    ComboBox2. Clear
    ComboBox3. Clear
    ComboBox4. Clear
    Select Case ComboBox1
        Case "Peticiones"
            ComboBox2. AddItem "Opcion 1 peticiones"
            ComboBox3. AddItem "Opcion 2 peticiones"
ComboBox4. AddItem "Opcion 3 peticiones"
        Case "Quejas"
            ComboBox2. AddItem "Opcion 1 quejas"
            ComboBox3. AddItem "Opcion 2 quejas"
            ComboBox4. AddItem "Opcion 3 quejas"
        Case "Reclamos"
            ComboBox2. AddItem "Opcion 1 Reclamos"
            ComboBox3. AddItem "Opcion 2 Reclamos"
            ComboBox4. AddItem "Opcion 3 Reclamos"
        Case "Sugerencis"
            ComboBox2. AddItem "Opcion 1 Sugerencis"
            ComboBox3. AddItem "Opcion 2 Sugerencis"
            ComboBox4. AddItem "Opcion 3 Sugerencis"
    End Select
End Sub

Gracias por responder a mi pregunta.

La programación que me enviaste donde la tengo que transcribir.

La primera parte es en el Formulario cuando se active, para que se carguen los datos del ComboBox1

La segunda en el Combobox1, después de cargar AfterUpdate

Respuesta
1

Tal vez con "IF" te sea más fácil de entender que con "SELECT CASE".

Muchas grasias por reponder a mi duda Andy  Machi.

La programacion que me evistes, la ingreso en cualquier parte del formulario o el combobox. 

La imagen muestra el código para ambos elementos. Private Sub UserForm_Initialize() tiene un código que es para el formulario, ese código lo que hace es cargar el combobox1 con las palabras Peticiones, Quejas, Reclamos y Sugerencias, para que cuando el usuario abra el formulario ya esas palabras estén disponibles para seleccionar.

Luego mas abajo esta el código para el combobox1: Private Sub ComboBox1_Change(). Ese código lo que hace es llenar los otros combobox, en base a la selección que el usuario haya hecho en el combobox1.

Ahora bien, parece que estas aprendiendo recién como funciona VBA en Excel. Cuando estas en el modo de edición del formulario, al dar doble click a cada elemento (el formulario en sí también es un elemento) entonces te cambiara la pantalla al modo de editor de código para ese elemento al que le hayas dado doble click. También te pondrá un pequeño código predefinido y mas común. Por ejemplo, si le das doble click a un TextBox, te abrirá el editor de código para ese textbox, y automáticamente te pondrá el evento mas común para ese elemento, que seria Private Sub TextBox1_Change().

Para implementar el código que te mostré antes o el del otro compañero que te respondió, solo debes dar doble click en cualquier elemento del formulario, o en el propio formulario para abrir el editor de código. Borra cualquier código predefinido que te salga, deja el editor en blanco, y pega el siguiente código ahí:

Private Sub UserForm_Initialize()
With Me.ComboBox1
    .AddItem "Peticiones"
    .AddItem "Quejas"
    .AddItem "Reclamos"
    .AddItem "Sugerencias"
End With
End Sub
Private Sub ComboBox1_Change()
If Me.ComboBox1.Value = "Peticiones" Then
    With Me.ComboBox2
        .Clear
        .AddItem "Peticiones 1"
        .AddItem "Peticiones 2"
        'etc etc
    End With
    With Me.ComboBox3
        .Clear
        .AddItem "Peticiones 1"
        .AddItem "Peticiones 2"
        'etc etc
    End With
ElseIf Me.ComboBox1.Value = "Quejas" Then
    With Me.ComboBox2
        .Clear
        .AddItem "Quejas 1"
        .AddItem "Quejas 2"
        'etc etc
    End With
    With Me.ComboBox3
        .Clear
        .AddItem "Quejas 1"
        .AddItem "Quejas 2"
        'etc etc
    End With
ElseIf Me.ComboBox1.Value = "Reclamos" Then
    With Me.ComboBox2
        .Clear
        .AddItem "Reclamos 1"
        .AddItem "Reclamos 2"
        'etc etc
    End With
    With Me.ComboBox3
        .Clear
        .AddItem "Reclamos 1"
        .AddItem "Reclamos 2"
        'etc etc
    End With
ElseIf Me.ComboBox1.Value = "Sugerencias" Then
    With Me.ComboBox2
        .Clear
        .AddItem "Sugerencias 1"
        .AddItem "Sugerencias 2"
        'etc etc
    End With
    With Me.ComboBox3
        .Clear
        .AddItem "Sugerencias 1"
        .AddItem "Sugerencias 2"
        'etc etc
    End With
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas