Pasar tramos de datos de Forma automatizada

01/07/2003 - 10:36 por Petit | Informe spam
Buenas, chavales. Si tengo una hoja de excel con un
historico de 200-300 dias, cada uno con 400-500 filas de
datos y quiero coger cada tramo y pasarlo a otra hoja,
com puedo hacerlo de la forma más automatizada posible?
Cuando cambia de día, se coge el tramo anterior y se pasa)
Lo hago con VB y con un bucle que recorre la columna de
la fecha celda por celda, cogiendo principio y fianl de
tramo, pero necesito optimizar tiempos lo máximo posible.
Si tengo una cabecera en cada columna, puedo organizarlo
por ahí?. El ahorro de tiempo podría ser considerable...
GRACIAS DE ANTEMANO...
 

Leer las respuestas

#1 Fernando Arroyo
01/07/2003 - 11:55 | Informe spam
Normalmente es mucho más rápido el filtro de Excel que un bucle.
El siguiente código filtra la columna A de la hoja activa para mostrar sólo las celdas que tengan la fecha del día anterior y luego copia las filas completas a Hoja2:

Sub CopiarRangoFiltrado()
Dim rngNF As Range, rngF As Range

ActiveSheet.AutoFilterMode = False 'Quitar posible filtros activos en la hoja

Set rngNF = ActiveSheet.Range(ActiveSheet.Range("A1"), ActiveSheet.Range("A65536").End(xlUp)).EntireRow
ActiveSheet.Range("A1").Select
rngNF.AutoFilter Field:=1, Criteria1:=Format(Int(Now()) - 1, ActiveSheet.Range("A2").NumberFormat)
Set rngF = rngNF.SpecialCells(xlCellTypeVisible)
rngNF.Copy Destination:=Worksheets("Hoja2").Range("A1")

ActiveSheet.AutoFilterMode = False

Set rngF = Nothing
Set rngNF = Nothing
End Sub

Para que funcione bien, las fechas deben comenzar en la fila 2.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Petit" escribió en el mensaje news:025201c33fab$e9e01480$
Buenas, chavales. Si tengo una hoja de excel con un
historico de 200-300 dias, cada uno con 400-500 filas de
datos y quiero coger cada tramo y pasarlo a otra hoja,
com puedo hacerlo de la forma más automatizada posible?
Cuando cambia de día, se coge el tramo anterior y se pasa)
Lo hago con VB y con un bucle que recorre la columna de
la fecha celda por celda, cogiendo principio y fianl de
tramo, pero necesito optimizar tiempos lo máximo posible.
Si tengo una cabecera en cada columna, puedo organizarlo
por ahí?. El ahorro de tiempo podría ser considerable...
GRACIAS DE ANTEMANO...

Preguntas similares