archivo que hace filtrado lento...???? como arreglarlo

29/06/2006 - 00:19 por J. Carlos Muñiz S. | Informe spam
cada vez se va haciendo el aplicado de filtros muy lento, no cuenta con
codigo, mas que con 3 macros de ordenacion de datos en base a una columna.
en cuanto a que este pesado el archivo, yo diria que no, ya que cuenta con 3
hojas:

la primera que maneja cerca de 100 filas, de las cuales cuenta con cerca de
20 columnas casi todas de fechas, y cuenta con unas 10 columnas de formulas,
no tan complejas, busca indices, obtiene titulos, etc, esto en una hoja, la
cual es donde tengo todos los datos.

En la segunda hoja cuenta con unas tablas (3), que solo cuentan renglones o
resultados de las formulas de la primer hoja.

En la tercer hoja tengo cerca de 10 tablas dinamicas, que dependen de la
primer hoja.

conforme pasa el tiempo, tengo la necesidad de agregarle cerca de 20 a 30
filas adicionales a la primer hoja. pero cada vez se hace mas lenta la
utilizacion de filtros.

Alguien que me pueda guiar, que es lo que estoy haciendo mal...???

muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/06/2006 - 03:12 | Informe spam
hola, J. Carlos !

cada vez se va haciendo el aplicado de filtros muy lento
no cuenta con codigo, mas que con 3 macros de ordenacion de datos en base a una columna
en cuanto a que este pesado el archivo, yo diria que no, ya que cuenta con 3 hojas:
la primera... 100 filas... 20 columnas casi todas de fechas, y... 10 columnas de formulas no tan complejas...
la segunda... unas tablas (3), que solo cuentan renglones o resultados de las formulas de la primer hoja.
la tercera... 10 tablas dinamicas, que dependen de la primer hoja [...]
Alguien que me pueda guiar, que es lo que estoy haciendo mal...???



1) 'dices' que -> no cuenta con codigo... -> mas que con 3 MACROS 'de ordenacion' -???-

2) la/s -posible/s- causa/s de la lentitud 'creciente' al ordenar los datos...
pudiera/n ser la/s macro/s misma/s con que haces 'la ordenacon' -???-
ademas [quizas] de algun/os 'manejo/s' que pudieran reflejarse 'versus' formulas y tablas dinamicas -???-

3) mientras te animas a exponer los codigos que estas usando [y en que tipo de modulo los tienes]...
revisa si existe codigo en los eventos '_calculate', '_change', etc. ya sea en los modulos de las hojas y/o del llibro -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 J. Carlos Muñiz S.
29/06/2006 - 21:17 | Informe spam
muchas gracias

no hay mas codigo que estas tres macros, que anexo, espero me puedan ayudar,
caso se requiera el archivo, con gusto lo anexo. Cabe mensionar que se
realizan de esta forma, ya que no conozco manejo de codigo.

muchas gracias de antemano.

Sub TRANSCURRIDOS()
'
' TRANSCURRIDOS Macro
' Macro grabada el 13/03/2006 por LOURDES
'

'
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("L3").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=
_
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("AE4"), Order1:=xlDescending, Header:=xlYes,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("AE3").Select
Selection.AutoFilter Field:1, Criteria1:="<>"
End Sub
Sub MZ_LT()
'
' MZ_LT Macro
' Macro grabada el 13/03/2006 por LOURDES
'

'
Range("E3").Select
ActiveWindow.SmallScroll ToRight:=4
Range("L3").Select
Columns("I:I").ColumnWidth = 14.57
Columns("J:M").Select
Range("J3").Activate
Selection.EntireColumn.Hidden = False
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("AF3").Select
Selection.AutoFilter Field:1
Range("AC7").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=
_
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("D4"), Order1:=xlAscending, Key2:=Range("E4")
_
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1,
MatchCase:=False _
, Orientation:=xlTopToBottom
Range("D3").Select
End Sub
Sub SEPARACION()
'
' SEPARACION Macro
' Macro grabada el 13/03/2006 por LOURDES
'

'
ActiveWindow.SmallScroll ToRight:=3
Columns("J:L").Select
Range("J3").Activate
Selection.EntireColumn.Hidden = False
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("AG23").Select
Selection.AutoFilter Field:1
Range("AE3").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=
_
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("L4"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("L3").Select
End Sub


"Héctor Miguel" escribió en el mensaje
news:%
hola, J. Carlos !

cada vez se va haciendo el aplicado de filtros muy lento
no cuenta con codigo, mas que con 3 macros de ordenacion de datos en base
a una columna
en cuanto a que este pesado el archivo, yo diria que no, ya que cuenta
con 3 hojas:
la primera... 100 filas... 20 columnas casi todas de fechas, y... 10
columnas de formulas no tan complejas...
la segunda... unas tablas (3), que solo cuentan renglones o resultados de
las formulas de la primer hoja.
la tercera... 10 tablas dinamicas, que dependen de la primer hoja [...]
Alguien que me pueda guiar, que es lo que estoy haciendo mal...???



1) 'dices' que -> no cuenta con codigo... -> mas que con 3 MACROS 'de
ordenacion' -???-

2) la/s -posible/s- causa/s de la lentitud 'creciente' al ordenar los
datos...
pudiera/n ser la/s macro/s misma/s con que haces 'la
enacon' -???-
ademas [quizas] de algun/os 'manejo/s' que pudieran reflejarse 'versus'
formulas y tablas dinamicas -???-

3) mientras te animas a exponer los codigos que estas usando [y en que
tipo de modulo los tienes]...
revisa si existe codigo en los eventos '_calculate', '_change', etc. ya
sea en los modulos de las hojas y/o del llibro -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
30/06/2006 - 05:59 | Informe spam
hola, J. Carlos !

no hay mas codigo que estas tres macros... se realizan de esta forma, ya que no conozco manejo de codigo.



1) en los codigos que estas usando, se repite una serie de re/seleccion de rangos y celdas [asi como una 'busqueda']...
que [al final de cuentas] es 'desechada' [como si nunca se hubiera hecho] por lo que podrias 'vivir SIN esas lineas'...
ya que 'terminas' haciendo una ordenacion SIEMPRE sobre el rango 'A3:AR46' -?-

2) el uso del 'buscar' un dato... activar la celda donde se encuentre... para 'terminar' desechando la seleccion...
tiene algun 'sentido' que no se alcance a apreciar en la secuencia de los codigos -?-

3) la 'base de datos' que necesitas ordenar... ES SIEMPRE el rango 'A3:AR46' -?-

4) cual es el sentido o la necesidad de 'ir extendiendo' a la izquierda la seleccion 'partiendo' SIEMPRE de la celda 'AR46' -?-

[me da la impresion que en ese rango [A3:AR46] existen columnas 'vacias'] -?-

5) fuera de los autofiltros [activados en la primer marco y desactivados en las otras]...
y el mostrar/ocultar algunas columnas [entre unas macros y otras]...
mas las instruciones para ordenar por uno o dos criterios...
-> podrias eliminar de tus codigos las lineas mencionadas en los puntos anteriores -?-

comentas [si hubiera] algun detalle que no se esta apreciando en los codigos que expones ?
saludos,
hector.

__ los codigos 'en uso' __
Sub TRANSCURRIDOS()
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("L3").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select


==> la instruccion anterior SE REPITE otras 18 veces :))
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("AE4"), Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("AE3").Select
Selection.AutoFilter Field:1, Criteria1:="<>"
End Sub
Sub MZ_LT()
Range("E3").Select
ActiveWindow.SmallScroll ToRight:=4
Range("L3").Select
Columns("I:I").ColumnWidth = 14.57
Columns("J:M").Select
Range("J3").Activate
Selection.EntireColumn.Hidden = False
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("AF3").Select
Selection.AutoFilter Field:1
Range("AC7").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select


==> la instruccion anterior SE REPITE otras 19 veces :))
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("D4"), Order1:=xlAscending, Key2:=Range("E4") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("D3").Select
End Sub
Sub SEPARACION()
ActiveWindow.SmallScroll ToRight:=3
Columns("J:L").Select
Range("J3").Activate
Selection.EntireColumn.Hidden = False
Columns("K:K").Select
Range("K2").Activate
Selection.EntireColumn.Hidden = True
Range("AG23").Select
Selection.AutoFilter Field:1
Range("AE3").Select
Cells.Find(What:="FILTROSEPARACION", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False).Activate
Range("AR46").Select
Range(Selection, Selection.End(xlToLeft)).Select


==> la instruccion anterior SE REPITE otras 17 veces :))
Range("A3:AR46").Select
Range("AR46").Activate
Selection.Sort Key1:=Range("L4"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("L3").Select
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida