Comboboxes en cascada y varias casillas de selección que pueden variar según la selección de los combos

Espero poder ser lo demasiado claro para que me entiendas, vi tu respuesta proporcionada con anterioridad a uno de los miembros y me parece muy buena propuesta, aunque, trate de aplicarla y no me funciono, ademas mi problema tiene una pequeña variante, básicamente yo necesito 5 comboboxes dependientes entre si (columnas A a la E) y, una sección de casillas de selección que deben depender de según las opciones escogidas en los comboboxes, deberían de aparecer solo las casillas de selección ("columnas") que aplican para el juego de valores hasta la columna E, los valores son desde 1 a n, por cada juego, como se puede observar de la casilla F en adelante, y estos valores debo agregarlos a un registro, los valores de las casillas ("columnas") de selección deben quedar concatenados en una sola celda. Como te mencione, trate de aplicar tu ejemplo anterior pero no me ha funcionado, solo me carga el primer combo, los demás no. De antemano muchas gracias por tu apoyo.

PD: Te la imagen de abajo es en teoría como esperaría que quedara el proyecto, de antemano muchas gracias.

Respuesta
1

H o l a:

Envíame tu archivo y me explicas con ejemplos y con colores, qué debe aparecer en los combos y qué debe suceder cuando presionas el botón.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Hugo Caceros” y el título de esta pregunta.

Avísame en esta pregunta cuando me lo hayas enviado.

':)

S a l u d o s . D a n t e   A m o r

Estimado Dante Amor muchas gracias por tu pronta respuesta, tal como me lo requieres, he enviado a tu email el documento con la explicación de lo que necesito. Muchas gracias.

Estimado Dante Amor, te envié el archivo con un ejemplo aplicado con listas en celdas, que simula más o menos lo que necesito, podría trabajarlo de esa manera, pero me gustaría más, trabajarlo con userform, de antemano muchas gracias por tu apoyo

Listo, te envío la macro para crear las casillas según la selección de los combos

'Por. Dante Amor
Private Sub ComboBox1_Change()
    cargar 2
End Sub
Private Sub ComboBox2_Change()
    cargar 3
End Sub
Private Sub ComboBox3_Change()
    cargar 4
End Sub
Private Sub ComboBox4_Change()
    cargar 5
End Sub
Private Sub ComboBox5_Change()
'Por.Dante Amor
    For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
        igual = False
        For j = 1 To 5
            If Cells(i, j) = Me.Controls("ComboBox" & j) Then
                igual = True
            Else
                igual = False
                Exit For
            End If
        Next
        If igual Then
            For k = 6 To Cells(2, Columns.Count).End(xlToLeft).Column
                If Cells(i, k) <> "" Then
                    ListBox1.AddItem Cells(i, k)
                End If
            Next
            Exit For
        End If
    Next
End Sub
'
Sub agregar(combo As ComboBox, dato As String)
'agrega los item únicos y en orden alfabético
    For i = 0 To combo.ListCount - 1
        Select Case StrComp(combo.List(i), dato, vbTextCompare)
            Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
            Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
        End Select
    Next
    combo.AddItem dato 'Es mayor lo agrega al final
End Sub
Sub cargar(ini)
    For i = ini To 5
        Me.Controls("ComboBox" & i) = ""
    Next
    ListBox1.Clear
    anidar ini - 1
End Sub
Sub anidar(col)
    For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
        igual = False
        For j = 1 To col
            If Cells(i, j) = Me.Controls("ComboBox" & j) Then
                igual = True
            Else
                igual = False
                Exit For
            End If
        Next
        If igual Then agregar Me.Controls("ComboBox" & col + 1), Cells(i, col + 1)
    Next
End Sub
'
Private Sub UserForm_Initialize()
    For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
        agregar ComboBox1, Cells(i, "A")
    Next
End Sub
'
Private Sub CommandButton1_Click()
    'Worksheets("Hoja2").Range("A1").Value = Me.ComboBox1.Value
    'Worksheets("Hoja2").Range("B1").Value = Me.ComboBox2.Value
    'Worksheets("Hoja2").Range("C1").Value = Me.ComboBox3.Value
    'Worksheets("Hoja2").Range("D1").Value = Me.ComboBox4.Value
    'Worksheets("Hoja2").Range("E1").Value = Me.ComboBox5.Value
    'Unload Me
    'Load UserForm
End Sub
Private Sub CommandButton2_Click()
    Unload Me
End Sub

No olvides cambiar la valoración a la respuesta. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas