Tengo datos de un movimiento de materiales asi:
a b c d e f g
h
1 Remanofactura 4 Entrada Proveedor 28/08/2007 Lleno Info
2 Remanofactura 6 Entrada Proveedor 28/08/2007 Lleno Info
3 Cambio de 4 Entrada Info 30/08/2007 Lleno Mercad
4 Cambio de 2 Salida Merc 30/08/2007 Vacio Infor
5 Cambio de 5 Entra Infor 07/09/2007 Lleno Cert
6 Cambio de 12 Salida Certam 07/09/2007 Vacio Info
7 Cambio de 6 Entra Info 10/09/2007 Lleno
Recep
8 Cambio de 1 Salida Recep 10/09/2007 Vacio Infor
9 Para Recarga 2 Salida Inform 05/09/2007 Vacio Proveedores
10 Recargado 2 Entrada Proveedor 10/09/2007 Lleno Infor
11 Para Recarga 1 Salida Inform 10/09/2007 Vacio Proveedor
12 Para Recarga 12 Salida Inform 07/09/2007 Vacio Proveedor
realizo el filtro por la columna G, asi:
ActiveSheet.Range("a1:h12").AutoFilter Field:=7, Criteria1:="Lleno"
hasta ahi todo muy bien, excel me hace el filtro personalizado, pero
ahora viene la pregunta. Como paso los resultados del filtro a un
listbox con titulo por VBA?
... Bueno la verdad es que he realizado varios ensayos y me funciona
uno el cual es el siguente:
seleccionar los campos visibles luego de generar el filtro automatico,
asi:
Selection.SpecialCells(xlCellTypeVisible).Select
luego copio esa seleccion, me ubico en otra hoja y los pego
Selection.Copy
Sheets("Reportes").Select 'Activa hoja de Reportes
Range("A1").Select
ActiveSheet.Paste
Luego voy a ese nueva hoja que pegue los resultados, paso de celda en
celda agregando los datos a una matriz, la cual despues agrego
a el listbox.
ReDim matriz(0 To Range(rango).Count - 1, 0 To 9) 'Dimenciona la
Matriz de los movimientos
Range("A2").Select
Do While ActiveCell.Value <> Empty 'Recorre la hoja para copiar datos
ala Matriz
For Col = 0 To 9
matriz(Fila, Col) = ActiveCell.Offset(0, Col) 'Agrega los valores
a la Matriz de movimientos
Next
Fila = Fila + 1
ActiveCell.Offset(1, 0).Select
Loop
listbox1.list=matriz ' Agrego datos de la natriz al listbox
Bueno .. la cuestion es que este codigo me funciona y me pone los
datos filtrados en un listbox. la cuestion es que cuando mis
movimientos son mas de 150 este codigo se demora mas de 42 segundos.
quisiera que me dijeran algo mas automatico o alguna otra forma de
mostrar mis datos filtrados
Muchas Gracias .. ! .. espero ser claro .. !
Leer las respuestas