Forzar la ejecución de una macro cuando se vuelve a calcular una hoja de trabajo (Microsoft Excel)
Cuando escribe una macro, está diseñada para ejecutarse siempre que elija ejecutarla. ¿Qué sucede si necesita desarrollar una macro que se ejecutará siempre que algo cambie en su hoja de trabajo? ¿Qué pasa si desea que la macro se ejecute automáticamente? Esto es particularmente necesario si está creando una función personalizada que desea usar dentro de las celdas de la hoja de trabajo.
Aquí es donde el método volátil resulta útil. Todo lo que necesita hacer es incluir la siguiente declaración dentro de su macro:
Application.Volatile
Esto informa a Excel que los resultados de la macro dependen de los valores en la hoja de trabajo y que debe ejecutarse cada vez que se recalcula la hoja de trabajo. Por ejemplo, considere la siguiente función definida por el usuario:
Function CountCells(MyRange As Range) Dim iCount As Integer iCount = 0 For Each cell In MyRange If cell.HasFormula Then iCount = iCount + 1 End If Next cell CountCells = iCount End Function
Esta función, si se usa en una celda, cuenta el número de celdas que contienen fórmulas dentro de un rango específico. Sin embargo, la función solo se ejecutará la primera vez que se ingrese en una celda o siempre que se edite la celda que contiene la fórmula. Si desea que la función se recalcule cada vez que se recalcula la hoja de trabajo, agregaría el método Volátil cerca del comienzo de la función:
Function CountCells(MyRange As Range) Dim iCount As Integer Application.Volatile iCount = 0 For Each cell In MyRange If cell.HasFormula Then iCount = iCount + 1 End If Next cell CountCells = iCount End Function
La inclusión del método Application.Volatile significa que cada vez que se recalcula la hoja de trabajo, esta función (macro) se ejecuta nuevamente.
_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 (10598) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Forcing_a_Macro_to_Run_when_a_Worksheet_is_Recalculated [Forcing a Macro to Run when a Worksheet is recalculated]
.