Actualización de fórmulas mediante VBA

Arkana0 Mensajes publicados 1980 Fecha de registro   Estado Moderador Última intervención   -  
Arkana0 Mensajes publicados 1980 Fecha de registro   Estado Moderador Última intervención   -
Hola,

Trabajo con una enorme tabla en Excel 2007
La misma se compone de dos hojas, que llamaré A y B.
La hoja A está llena de fórmulas que obtienen datos de la hoja B en cerca de 1000 filas y una buena docena de columnas.
Naturalmente, con la actualización automática, aplicar un filtro toma un tiempo considerable (se acerca a los 5s). Así que lo configuré para una actualización manual.

Sin embargo, para evitar descuidos, me preguntaba si sería posible codificar algo en VBA para que las fórmulas se actualicen automáticamente cuando haga una modificación en la hoja B y regrese a la hoja A.

Les agradezco de antemano por sus consejos, y no, no tengo la posibilidad de aligerar la tabla más de lo que ya está ;)

1 respuesta

gbinforme Mensajes publicados 14930 Fecha de registro   Estado Colaborador Última intervención   4 744
 
Hola,

Supongo que lo que llamas "actualización automática" es el modo de cálculo automático.
Si es así, simplemente debes mantenerlo en manual y activar el cálculo al activar la hoja A
Private Sub Worksheet_Activate() Calculate End Sub

--
 Siempre zen
La perfección se alcance, no cuando no hay nada más que agregar, sino cuando no hay nada más que retirar.  Antoine de Saint-Exupéry
0
Arkana0 Mensajes publicados 1980 Fecha de registro   Estado Moderador Última intervención   183
 
Hola,

Sí, de eso se trata: las fórmulas que se actualizan automáticamente o al presionar F9.
Sin embargo, acabo de ver que cambiar a cálculo manual no era una opción tan buena: esto se aplica a todos los archivos de Excel... En realidad, me gustaría que este cálculo "manual" solo se hiciera en esta hoja A.

Luego, en cuanto a tu código: solo hace una parte de lo que pido. No quiero que los cálculos se actualicen cada vez que voy a mi hoja A (eso sería un primer avance, por cierto). Quiero que se actualicen solo si voy a mi hoja A y he modificado un valor en mi hoja B anteriormente.
Quizás deberíamos establecer un sistema de bandera con una variable global?
0
gbinforme Mensajes publicados 14930 Fecha de registro   Estado Colaborador Última intervención   4 744
 
Buenas noches,

En este caso, en Thisworkbook, en el evento Open, recuperas el modo de cálculo para restituirlo al cierre y lo pones en manual.

En Change de tu hoja B colocas tu variable global de bandera.

Al activar la hoja A, calculas si la bandera está posicionada.
0
Arkana0 Mensajes publicados 1980 Fecha de registro   Estado Moderador Última intervención   183
 
Si dispones de un código ya hecho, me evitaría algunas búsquedas en Google '^^
0