Escribir una lista en listbox

Si por favor me pudieran ayudar

Tengo una lista en excel y con un formulario tengo un combobox y un cuadro de lista, pongo el numero de departemtno en el combobox y aparece todos los registros de acuerdo a ese departamento en el listbox, pero al cambiar de departemtno me pone los nuevos registro del otro departamento y lo que quiero es que si selecciona un departamento y luego otro, me deje los registro es decir si yo selecciono 2 o 3 departamentos en combobox aparezcan todos los registro en el listbox.

Anexo ejemplo

https://www.mediafire.com/file/5g8v81cnch9z6po/LISTA_2021.xlsm/file

1 Respuesta

Respuesta
1

Revisé tu formulario.

Realiza lo siguiente:

1. Agrega esta línea en tus variables globales:

Dim dic As Object

2. Agrega esta línea en el evento intialize

Set dic = CreateObject("Scripting.Dictionary")

3. Utiliza el siguiente código en el evento change del combobo1

Private Sub ComboBox1_Change()
  Dim i As Long, n As Long
  If ComboBox1.ListIndex = -1 Then Exit Sub
  If Not dic.exists(ComboBox1.Value) Then
    dic(ComboBox1.Value) = Empty
    For i = 2 To CC.Range("B" & Rows.Count).End(3).Row
      If CC.Range("B" & i).Value = Val(ComboBox1.Value) Then
        Items.AddItem
        n = Items.ListCount - 1
        Items.List(n, 0) = CC.Range("E" & i).Value
        Items.List(n, 1) = CC.Range("F" & i).Value
        Items.List(n, 2) = CC.Range("G" & i).Value
        Items.List(n, 3) = CC.Range("H" & i).Value
        Items.List(n, 4) = Format(CC.Range("I" & i).Value, "$ #,###.00")
        Items.List(n, 5) = Format(CC.Range("J" & i).Value, "$ #,###.00")
      End If
    Next
  End If
End Sub

4. Para llenar el listbox Items, no es necesario el combobox CC6.

5. Actualiza el número de columnas y ancho de columnas del listbox en las propiedades, de esa manera no tienes que hacerlo en el código.

6. Te anexo el archivo con los cambios para que pruebes el formulario.

https://drive.google.com/file/d/1rAe7v3tuM7kEN-0ZelbI_afAhb4_Hgfv/view?usp=sharing 

7. Resultado:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas