Logotipo
Seguir

Excel: Mejorar el rendimiento de las macros

La programación de macros en informes Excel generados por DataCycle es algo habitual ya sea durante el proceso de generación o cuando el usuario esté utilizando el informe.

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.

A continuación algunas instrucciones que podemos utilizar para mejorar el rendimiento en las macros.

Deshabilitar el cálculo automático:

La lentitud al ejecutar una macro puede deberse a que para cada cambio en los valores de una hoja, se recalculan los valores del resto de las fórmulas de la hoja y el libro.  Esto suele ocurrir si tenemos muchas celdas con fórmullas.

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 incluir la siguiente linea:
Application.Calculation = xlCalculationManual


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


Al finalizar incluir estas dos:
Application.Calculation = xlCalculationAutomatic
Application.Calculate

Nota:  al usar el cálculo manual los valores de las celdas no se recalcularán hasta que no usemos la instrucción Application.Calculate por lo que si en nuestra macro cambiamos los valores de celdas, los cambios en el resto del libro no estarán aplicados.

Deshabilitar el refresco de pantalla:

La siguiente instrucción, que ubicada al principio de la macro con valor Falso evita el refresco constante de la pantalla debido a la ejecución de cambios desaparezca.  De esta forma el usuario no verá los pasos que hace la macro.

Application.ScreenUpdating = False

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

Application.ScreenUpdating = True

Nota: si tenemos macros que llaman a otras macros, es importante poner esta instrucción sólo en la macro principal.

Válido para versiones 2003, 2007 y 2010

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 1 de 1
¿Tiene más preguntas? Enviar una solicitud

0 Comentarios

Inicie sesión para dejar un comentario.
Tecnología de Zendesk