Cargar listbox en 4 columnas desde otro libro

Hola Elsa, necesito su ayuda, estoy creando una aplicación en excel, el Libro1 contiene un lixtbox incrustado en la hoja1 y quiero hacer que en el list box se carguen los datos que están en el Libro2 en la hoja (clientes) y rango (A2:D50) y que al cargar el lisbox los datos sean mostrados en las 4 columnas. Encontré un código para cargar un listbox condatos desde otro libro pero no encuentro la forma de adaptarlo para me muestre los datos en 4 columnas
el código es el siguiente:
Sub datosaListbox()
Dim Celda As Range
Dim ElementosLista As New Collection
'la siguiente es por si el libro estuviera cerrado
Workbooks.Open "D:\Libro2.xls"
Workbooks("Libro2.xls").Sheets("Clientes").Activate
On Error Resume Next
For Each Celda In Range("A2:D50")
ElementosLista.Add Celda.Value
Next Celda
On Error GoTo 0
For Each Item In ElementosLista
Workbooks("Libro1.xls").Sheets("Hoja1").Activate
ActiveSheet.ListBox1.AddItem Item
Next Item
 'la siguiente es por si el libro debe cerrarse
Workbooks("Libro2.xls").Close
End Sub
De antemano le estoy muy agradecido por ayudarme con su experiencia y ayudarme a resolver la dificultad que presento. Saludos

1 respuesta

Respuesta
1
Utilizá un solo bucle con estas instrucciones:
On Error Resume Next
i=0
For Each Celda In Range("A2:A50")
Workbooks("Libro1.xls").Sheets("Hoja1").ListBox1.AddItem Celda
Workbooks("Libro1.xls").Sheets("Hoja1").ListBox1.List(i,1) = Celda.offset(0,1)
Workbooks("Libro1.xls").Sheets("Hoja1").ListBox1.List(i,2) = Celda.offset(0,2)
Workbooks("Libro1.xls").Sheets("Hoja1").ListBox1.List(i,3) = Celda.offset(0,3)
i=i+1
Next Celda
'la siguiente es por si el libro debe cerrarse
Workbooks("Libro2.xls").Close
End Sub
Las col en un listbox se cuentan a partir de 0
Está sin probar, solo la escribí aquí y es posible que se me haya deslizado algún error,
Cualquier dificultad escribime nuevamente con la rutina tal como la dejaste (y la línea del error si se presenta)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas