Cargar datos en listbox dependiendo de dos combobox

Para Dante Amor

Hola Dante Amor tardes:

Nuevamente solicito de tu generosa ayuda, ya que desafortunadamente en la pregunta anteior debido a la respuesta que muy gentilmente me envio otro experto, se quedo la pregunta sin su respuesta.

La pregunta es la siguiente:

En el archivo que le envie en días anteriores a su correo, contiene una hoja, (Hoja17 con nombre Minuta), lo que necesito es que en el formulario solicitudes pueda alimentar la información del listbox2, partiendo de la información ingresada en los Combobox3 (semana) y Combobox4 (categoría).

La información de las semanas y categorías esta en la hoja minuta así:

Semana 1 en las columnas B a G, semana 2 columnas I a N, semana 3 columnas P a U y semana 4 columnas W a AB.

La información que se debe llevar al listbox debe depender de lo que se ingrese en los combobox 3 y 4, para las cantidades se debe tomar aquellos intems que tengan un valor mayor a cero en las columnas con nombre "Pedido Semanal", que para la semana 1 es la columna G, para la semana 2 columna N, semana 3 columna U y semana 4 columna AB.

Las categorias estan relacioandas asi: Frutas y verduras de la fila 5 a la 43, Alacena de la fila 51 a la 90, Carnes de la fila 96 a 101 y Lacteos de la fila 106 a 116.

Espero haber sido lo suficientemente claro con la explicación de mi necesidad.

Agradezco inmensamente la ayuda que me pueda brindar con este tema; al correo le envío el archivo actualizado.

Que tenga un excelente fin de semana.

Gilber Fabian Tobar D.

1 respuesta

Respuesta
1

Te anexo el código

Private Sub ComboBox3_Change()
    Call Llenar_List2
End Sub
Private Sub ComboBox4_Change()
    Call Llenar_List2
End Sub
'
Sub Llenar_List2()
    ListBox2.Clear
    If ComboBox3 = "" Or ComboBox4 = "" Or _
       ComboBox3.ListIndex = -1 Or ComboBox4.ListIndex = -1 Then
       Exit Sub
    End If
    '
    Set h = Sheets("Minuta")
    Set b = h.Rows(2).Find(ComboBox3, lookat:=xlWhole)
    If Not b Is Nothing Then
        col = b.Column
        Set b = h.Columns("C").Find(ComboBox4, lookat:=xlWhole)
        If Not b Is Nothing Then
            fila = b.Row + 2
            Do While h.Cells(fila, col) <> ""
                If h.Cells(fila, col + 5) > 0 Then
                    ListBox2.AddItem
                    ListBox2.List(ListBox2.ListCount - 1, 0) = h.Cells(fila, col + 4) 'existencia
                    ListBox2.List(ListBox2.ListCount - 1, 1) = h.Cells(fila, col + 0) 'codigo
                    ListBox2.List(ListBox2.ListCount - 1, 2) = h.Cells(fila, col + 1) 'nombre
                    ListBox2.List(ListBox2.ListCount - 1, 3) = h.Cells(fila, col + 3) 'consumo semanal
                End If
                fila = fila + 1
            Loop
        End If
    End If
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    '
    cambio = False
    '
    'llenar el combo con las 2 col de Lista de Productos
    For j = 2 To Hoja5.Range("A" & Rows.Count).End(xlUp).Row
        ComboBox1. AddItem Hoja5.Cells(j, "A")
        ComboBox2. AddItem Hoja5.Cells(j, "B")
    Next j
    '
    ComboBox3. AddItem "SEMANA 1"
    ComboBox3. AddItem "SEMANA 2"
    ComboBox3. AddItem "SEMANA 3"
    ComboBox3. AddItem "SEMANA 4"
    '
    ComboBox4. AddItem "FRUTAS Y VERDURAS"
    ComboBox4. AddItem "ALACENA COCINA"
    ComboBox4. AddItem "CARNES"
    ComboBox4. AddItem "QUESOS Y LACTEOS"
End Sub

.

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

.

Avísame cualquier duda

.

Mis más sinceros agradecimientos por tu labor desinteresada, me has ayudado enormemente.

Con respecto a lo de la pregunta inicial, no se porque otro experto respondió a la pregunta, si claramene estaba direccionada a su nombre, entiendo perfectamente lo comentado por usted con respecto a este tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas