Llenar listbox de varias columnas con datos variables dependiendo de combobox
Con este procedimiento de VBA o macro de Excel, se muestra como rellenar un listbox que posee varias columnas, con la complicación que los datos no se encuentra en un rango continuo sino que surgen de una búsqueda de datos, los cuales dependen del valor que se ingrese en el combobox, es decir se selecciona un valor en el combo box, en base a ello se obtienen los datos, una vez que se encontraron los mismos se cargan al listbox, éste tiene varias columnas en el caso del ejemplo 5; haz click para bajar el ejemplo desde la página de su autor. 
El código que se encuentra a continuación se debe ingresar en un formulario que en el caso del ejemplo lleva el nombre de userform1, descargando el ejemplo lo podrás ver en funcionamiento, analizar, modificar y adaptar a lo que tú estés realizando el código está abierto sin ningún tipo de restricción. Código a insertar en formulario
Private Sub Combobox1_Change()
'Evito movimientos de la pantalla
Application.ScreenUpdating = False
Dim fila, a As Integer
On Error Resume Next
'Borra datos del listbox
ListBox1.Clear
a = 0
fila = 2
'Bucle mientras la fila no esté vacia
While Sheets("hoja1").Cells(fila, 5) <> Empty
dato = Combobox1
'Si el dato de la fila coincide con textbox carga los datos al listbox
Var = Sheets("hoja1").Cells(fila, 5)
If Sheets("hoja1").Cells(fila, 5) = dato Then
'Copia los datos de la celda list box
a = ListBox1.ListCount
ListBox1.AddItem
ListBox1.List(a, 0) = Sheets("hoja1").Cells(fila, 1)
ListBox1.List(a, 1) = Sheets("hoja1").Cells(fila, 2)
ListBox1.List(a, 2) = Sheets("hoja1").Cells(fila, 3)
ListBox1.List(a, 3) = Sheets("hoja1").Cells(fila, 4)
ListBox1.List(a, 4) = Sheets("hoja1").Cells(fila, 5)
End If
'Aumento la fila para que pase a la siguiente
fila = fila + 1
Wend
'Devuelvo movimientos de la pantalla
Application.ScreenUpdating = True
End Sub
Private Sub UserForm_Initialize()
Label2.Caption = Sheets("hoja1").Cells(1, 1)
Label3.Caption = Sheets("hoja1").Cells(1, 2)
Label4.Caption = Sheets("hoja1").Cells(1, 3)
Label5.Caption = Sheets("hoja1").Cells(1, 4)
Label6.Caption = Sheets("hoja1").Cells(1, 5)
Combobox1.AddItem ("Ventas")
Combobox1.AddItem ("Cobranzas")
Combobox1.AddItem ("Deposito")
Combobox1.AddItem ("Contaduria")
Combobox1.AddItem ("Legales")
End Sub Descargá el ejemplo desde http://programarexcel.blogspot.com/2013/05/llenar-listbox-de-varias-columnas-con.html En www.programarexcel.blogspot.com encontrarás este y muchos más ejemplos para poder descargar y adaptar a tus proyectos.
Fuente del Artículo: http://www.articuloz.com/programacion-articulos/llenar-listbox-seleccionando-items-en-combobox-en-excel-con-vba-6616479.html
Sobre el Autor
No hay comentarios:
Publicar un comentario