Optimizar macros en Excel
04-24-2006
Montse Cortés in Trucos Excel

La programación de macros en informes Excel generados por DataCycle es algo habitual, ya que filtrar información en tablas dinámicas a través de botones personalizados o bien a través de listas de valores se ha convertido en funciones útiles y necesarias para presentar la información de forma resumida y concisa.

Nos podemos encontrar ante la situación de tener una serie de macros que al actualizar mucho volumen de información, la ejecución tarde tanto que puede llegar a permanecer varios minutos recalculando sin permitir realizar ninguna otra acción hasta que finalice.

Esto es debido a que para cada cambio en las fórmulas de una hoja, porque se haya filtrado un campo de la tabla dinámica, por ejemplo, se recalculan los valores del resto de las fórmulas de la hoja .

Existen una líneas de código que ubicadas al principio y al final de la macro, optimizan el rendimiento ya que trasladan el cálculo de las celdas de todas las celdas al final de la ejecución de la macro.

El código sería el siguiente:

Al inicio de la macro ncluir la siguiente linea:
Application.Calculation = xlCalculationManual


.... (Código de la macro)


Al finalizar incluir estas dos:
Application.Calculation = xlCalculationAutomatic

Application.Calculate

Otra optimización de código es la siguiente instrucción, que ubicada al principio de la macro con valor 'Falso' permite que el refresco constante de la pantalla debido a la ejecución de cambios desaparezca.

Application.ScreenUpdating = False

.... (Código de la macro)

Application.ScreenUpdating = True


 

Article originally appeared on ApeSoft (http://blog.apesoft.es/).
See website for complete article licensing information.