como se incrementa la velocidad de ejecucion de una macro

18/11/2009 - 20:42 por wallyrios | Informe spam
Hola a todos los de la Comunidad, tengo una macro que demora 3.5 minutos en
efectuar los calculos de 60 columnas y de 320 filas, lo que he hecho es tener
una fila que contiene todas las formulas que deberan de copiarse en las que
se quieren los resultados y cuando estos han concluido, toda la ZONA de
calculo la VALIDO para que no sea tan pesada directamente por la MACRO, pero
se demora 3.5 minutos en efectaur los calculos,¿HAY ALGUNA FORMA DE ABREVIAR
EL TIEMPO DE EJECUCION?.
Muchas gracias
Oswaldo
 

Leer las respuestas

#1 Adolfo Aparicio
19/11/2009 - 13:13 | Informe spam
Para acelerar la ejecución de macros puedes utilizar estos métodos.

1. Eliminar movimientos inecesarios de pantalla.

En muchas ocasiones lo que relentiza los procedimientos son los refrescos de
pantalla, ya que el ordenador utiliza la tarjeta gráfica que ha de mostrar
los valores en la hoja de cálculo.

Para evitar esto, al inicio de la macro se pone esta línea:

Application.ScreenUpdating = False

Y al final se pone esta otra línea:

Application.ScreenUpdating = True



2. Utilizar matrices

Otro método que resulta muy efectivo es utilizar lo menos posible la hoja de
cálculo. Trasladas a la macro los datos y los introduces en matrices.
Trabajas internamente con matrices y al final devuelves los resultados a la
hoja de cálculo. Esto incrementa enormemente la velocidad. Es inconveniente
es que los cálculos intermedios debes programarlos y pierdes la facilidad que
proporciona la hoja de cálculo al trabajar con funciones.

3. Pegar con 'pegado especial valores' todos los datos que en la hoja de
cálculo no se necesiten refrescar. Esto también mejora los tiempos de
cálculo, pero creo que esto ya lo has realizado.

Un saludo.

Adolfo Aparicio
www.excelavanzado.com





"wallyrios" escribió:

Hola a todos los de la Comunidad, tengo una macro que demora 3.5 minutos en
efectuar los calculos de 60 columnas y de 320 filas, lo que he hecho es tener
una fila que contiene todas las formulas que deberan de copiarse en las que
se quieren los resultados y cuando estos han concluido, toda la ZONA de
calculo la VALIDO para que no sea tan pesada directamente por la MACRO, pero
se demora 3.5 minutos en efectaur los calculos,¿HAY ALGUNA FORMA DE ABREVIAR
EL TIEMPO DE EJECUCION?.
Muchas gracias
Oswaldo

Preguntas similares