SUSCRÍBASE A NUESTRO BLOG
SOBRE APESOFT

ApeSoft es una compañía de soluciones de Gestión del Rendimiento Empresario: Gamification, Reporting, Dashboards, Planificación Presupuestaria y Balanced Scorecard, fundada en 1994, con sede central en España y oficinas en Estados Unidos.

Más información: Web ApeSoft

« Asistente para el diseño rápido de informes | Main | Ignorar celdas vacías en cálculos »
lunes
abr242006

Optimizar macros en 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


 

PrintView Printer Friendly Version

EmailEmail Article to Friend