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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Ivan
22/09/2007 - 18:39 | Informe spam
aunque creo que es obvio, se me ha pasado comentar que tendrias que
llamar a la macro cuando quieras cargar el listbox, pasandole como
argumento el propio listbox (ListBox1, ListBox23, MiListbox, etc..)

un saludo
Ivan
Respuesta Responder a este mensaje
#3 ~ jose ~
22/09/2007 - 20:26 | Informe spam
Hola,
las propuesta que expones no me sirven, cada hoja contiene 65530 filas
y puede haber más hojas iguales. El código para ir creando hojas según
la necesidad ya lo he creado, ahora lo que quiero es poder mostrar
todas las hojas (menos la primera del libro) en un listbox llamado
ListBox1 cada vez qeu inicie el formulario.

Un saludo,
jose

On 22 sep, 18:39, Ivan wrote:
aunque creo que es obvio, se me ha pasado comentar que tendrias que
llamar a la macro cuando quieras cargar el listbox, pasandole como
argumento el propio listbox (ListBox1, ListBox23, MiListbox, etc..)

un saludo
Ivan
Respuesta Responder a este mensaje
#4 Ivan
22/09/2007 - 20:35 | Informe spam
¿y por que no te sirven?
Respuesta Responder a este mensaje
#5 Ivan
22/09/2007 - 20:39 | Informe spam
¿y por que no te sirven?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida