Ejecutar una macro cuando cambia el resultado de una fórmula

Como continuación del artículo en el que explicábamos varias maneras de ejecutar una macro, ahora vamos a explicar cómo ejecutarla cuando cambia el valor de una celda. Para ello tendremos que seleccionar una celda objetivo (target) de manera que su contenido sea evaluado cada vez que se realiza alguna operación. En caso que esta operación cambie el contenido de la celda, Excel ejecutará la macro de manera automática.

Para explicarlo mejor hemos creado el ejemplo a continuación:

Ejemplo 1 – Ejecutar una macro cuando cambia el valor de una celda

  • Primero abrimos el Editor de Visual Basic (VBE – «Alt + F11″).
  • A continuación seleccionamos la hoja en la que se encuentra nuestra celda objetivo

  • Después seleccionamos en la esquina superior izquierda de la ventana de código la opción “worksheet”.

  • En la esquina superior derecha de la ventana código seleccionamos la opción “calculate”.

  • El siguiente código aparecerá de manera automática una vez seleccionemos la opción “calculate”:
Private Sub Worksheet_Calculate()
End Sub
  • El código mostrado a continuación tiene como celda objetivo la celda “E12”. El condicional hace que cada vez que se realiza algun cáculo en la hoja de excel se evalúe si el resultado en la celda “E12” ha cambiado. En caso de que haya cambiado se guardará el nuevo resultado en la variable «anteriorvalor» para utilizarlo como referencia posteriormente y se abrirá una ventana (msgbox) indicando al usuario el valor del nuevo resultado.
Private Sub Worksheet_Calculate()
Static anteriorvalor As Variant
    If Range("E12").Value <> anteriorvalor Then
        anteriorvalor = Range("E12").Value
        MsgBox ("El nuevo valor del Area es " & anteriorvalor)
    End If
End Sub
  • En nuestro ejemplo hemos creado una fórmula simple que cálcula el area de un rectágulo. Cada vez que el usuario cambie el ancho o alto del rectángulo nos aparecerá la siguiente ventana en pantalla:

Bonus track: Descarga estos ejemplos

[sociallocker]

Ya se que estos ejemplos son muy golosos. Por eso te los dejo aquí para que te los puedas descargar y probar tú tranquilamente en tú ordenador

Ejecutar una macro cuando cambia el resultado de una fórmula

[/sociallocker]

(Visited 26.846 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies