Macro que calcule fórmula en una celda solo cuando la celda contigua tenga el valor "calcular"

Nuevamente pidiendo su ayuda

Tengo una hoja con una tabla, y en la columna DE tengo una fórmula que deseo se calcule solo cuando la fórmula de la celda de la derecha (columna E) tenga como resultado la palabra "calcular".

Actualmente uso el siguiente código que calcula las fórmulas de la columna DE, pero el problema es que calcula esa columna completa y eso demora mucho (incluso aquellas fórmulas que ya no debería calcular), y no he encontrado como hacerla dependiente del resultado de la fórmula que está al lado, en la columna E

Sub Macro1()
Dim celda As Range
For Each celda In Range("D3:D150")
celda = celda.Formula
Next celda
    msgbox "Base de datos actualizada."
End Sub

2 Respuestas

Respuesta
2

Las fórmulas se calculan TODAS en automático, la única manera de "detenerlas" es cambiando el cálculo de fórmulas a Manual

Si tienes muchas fórmulas y agregas otra fórmula para verificar la fórmula de otra celda, ahora tendrás el doble de fórmulas.

Las recomendaciones son:

- Revisar las fórmulas que tienes y ver si se pueden cambiar por fórmulas más rápidas.

- Si no requieres el cálculo automático, entonces cambia a Manual.

- Si no van a cambias los resultados, entonces puedes cambiar todas las fórmulas y que una macro realice los cálculos y ponga los valores. Y cada que requieres actualizar resultados, ejecutas la macro.

___________-

Para ayudarte a revisar las fórmulas y ver si existe una opción más rápida, debes poner aquí la fórmula.

Con lo anterior también puede hacer el cálculo con la macro.

Además de la fórmula, pon una muestra de datos, para ver cómo funciona cada fórmula.

Respuesta

Que pasa si en la fórmula que tienes actualmente en la columna D le agregas esa condición. Quedaría algo más o menos así, imaginemos que es en la celda D3 (y copias hacia abajo)

=SI(E3="calcular";tuFormulaActual;"")

Gracias Gustavo

Lo intenté de esa forma, pero el problema es que la macro hace, de todas formas, el cálculo de toda la columna entre la fila 3 y la 150 (escrito en la macro más arriba). Para hacerlo más corto, he ido cambiando el valor de D3 hacia D10 o el número desde donde estoy usando esa columna, pero calcula todo igual, y no solo cuando la fórmula del lado dice "calcular". Por eso creo que lo ideal sería modificar esa macro, pero ahí ya me quedo corto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas