Rellenar ListBox con datos de varias hojas.

22/09/2007 - 17:37 por ~ jose ~ | Informe spam
Hola, que tal?
Como puedo rellenar un ListBox1 con los datos de todas las hojas de un
libro menos de la primera?.
Para rellenar los datos de una hoja empleo estas celdas:
("c6:e" & Range("b6").End(xlDown) + 5)

Venga, gracias y un saludo,
jose
 

Leer las respuestas

#1 Ivan
22/09/2007 - 18:21 | Informe spam
hola Jose,

se me ocurren al menos estas dos formas: (la 1ª creo que no iria mal si no son demasiadas filas en cada hoja, la 2ª
creo que es mas rapida, aunque te crea una hoja que luego elimina)
no estan probadas, pero tras revisarlas, creo que deberian funcionar siempre y cuando todas las hojas tengan mas de un
dato en el rangoy tengas mas de una hoja

'''********** puedes ponerlos en un modulo normal o en el de el formulario **********
'
' si no son demasiados datos podrias usar algo asi:
'
Sub CargarDeVariasHj_1(ByRef ListBx As MSForms.ListBox)
Dim n As Integer, f As Long, uf As Long
ListBx.ColumnCount = 3
Application.ScreenUpdating = False
With ThisWorkbook
For n = 2 To .Worksheets.Count
With .Worksheets(n)
uf = Range("b6").End(xlDown).Row + 5
For f = 6 To uf
ListBx.AddItem .Range("b" & f).Value
ListBx.List(ListBx.ListCount - 1, 1) = .Range("c" & f).Value
ListBx.List(ListBx.ListCount - 1, 2) = .Range("d" & f).Value
Next
End With
Next
End With
End Sub
'
' si son muchos registros quizas te venga mejor esta
'
Sub CargarDeVariasHj_2(ByRef ListBx As MSForms.ListBox)
Dim n As Integer, f As Long, uf As Long
ListBx.ColumnCount = 3
Application.ScreenUpdating = False
With ThisWorkbook
.Worksheets.Add After:=.Worksheets(1)
For n = 3 To .Worksheets.Count
With .Worksheets(n)
.Range("c6:e" & .Range("b6").End(xlDown).Row + 5).Copy _
ActiveSheet.[a65536].End(xlUp).Offset(1)
End With
Next
ListBx.List = Range("a2:c" & [a65536].End(xlUp).Row).Value
Application.DisplayAlerts = False
.Worksheets(2).Delete
Application.DisplayAlerts = True
End With
End Sub
'
'*************************************

espero te ayuden

un saludo
Ivan


"~ jose ~" escribió en el mensaje news:
Hola, que tal?
Como puedo rellenar un ListBox1 con los datos de todas las hojas de un
libro menos de la primera?.
Para rellenar los datos de una hoja empleo estas celdas:
("c6:e" & Range("b6").End(xlDown) + 5)

Venga, gracias y un saludo,
jose

Preguntas similares