En ocasiones se va a requerir que una función se actualice de forma automática cada vez que ocurre un cambio, para ello se mostrará con dos ejemplos esta característica.

Por ejemplo con el siguiente código:

[code language=”vb”]
Function N_Archivo1() As String
N_Archivo1 = ActiveSheet.Name
End Function
[/code]

Obtenemos el nombre de la hoja actual, puedes copiar el código y pegarlo en un módulo de VBA y llama a la función, escribiendo =N_Archivo1( ). Al final encontrarás un archivo Excel con los ejemplos. Vemos pues que nos devuelve como texto el nombre de la hoja, pero si cambiamos el nombre de la hoja verás que la función no se actualiza por si misma, se puede seleccionar la celda y con las teclas F2 + ENTER, se actualizará el nombre.

Vemos que realizar este procedimiento resulta incómodo, en especial si es que se tiene la función personalizada de Excel VBA en diferentes partes de la hoja, para hacer que la función creada se actualice automáticamente o sola, se agrega el método .Volatile a la función, el código quedaría de la siguiente manera:

[code language=”vb”]
Function N_Archivo2() As String
Application.Volatile
N_Archivo2 = ActiveSheet.Name
End Function
[/code]

Entonces si es que llamamos a la función N_Archivo2( ) al cambiar el nombre de la hoja el valor de la celda cambiará automáticamente. Suerte.

Actualizar una fórmula automaticamente

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *