Excel le permite controlar cuándo recalcula una hoja de trabajo. Normalmente, Excel vuelve a calcular cada vez que cambia algo en una celda. Si está trabajando con hojas de trabajo muy grandes que tienen muchas fórmulas, es posible que desee desactivar la función de recálculo automático. Puede desactivar el recálculo automático mediante los controles de la pestaña Cálculo del cuadro de diálogo Opciones.

Sus macros también pueden obligar a Excel a recalcular su hoja de trabajo. Si tiene activado el recálculo automático, cualquier cambio que realice su macro en una hoja de trabajo obligará a Excel a volver a calcular. Si tiene desactivado el recálculo automático, puede usar el método Calculate para volver a calcular una hoja de trabajo:

ActiveSheet.Calculate

Por supuesto, si el recálculo tarda bastante en realizarse, es posible que desee comprobar si es necesario volver a calcularlo antes de forzarlo. Parece que no hay ningún indicador que pueda comprobar directamente para ver si es necesario volver a calcularlo. Lo más parecido es comprobar la propiedad Saved del objeto Workbook. Esta propiedad actúa esencialmente como un «indicador sucio» para todo el libro. Si hay cambios sin guardar en un libro, la propiedad Saved es False; si todo se salva, entonces es Verdadero.

¿Cómo le ayuda esto a determinar si es necesario volver a calcular?

Recuerde que el cálculo solo es necesario cuando hay cambios en una hoja de trabajo. Cambiar cualquier cosa en una hoja de trabajo también establecerá la propiedad Guardada del libro en Falso. Por lo tanto, puede verificar la propiedad Saved antes de hacer el recálculo, como se muestra aquí:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate End If

Por supuesto, solo hay un problema con este enfoque: la propiedad Guardado solo se establece en Verdadero si el libro de trabajo está realmente guardado. Esto significa que podría volver a calcular varias veces sin tener que hacerlo realmente, a menos que vincule el guardado y el recálculo, como se muestra aquí:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate     ActiveWorkbook.Save End If

La sabiduría de abordar este problema de esta manera depende de la naturaleza de su situación particular. Si se tarda más en guardar el libro de trabajo que en simplemente volver a calcular, este enfoque no funcionará. Sin embargo, si el recálculo lleva más tiempo (lo que es muy posible con algunos tipos de operaciones), este enfoque puede funcionar bien.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2323) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Determining_if_Calculation_is_Needed [Determinar si el cálculo es necesario].