¿Cómo usar el evento Activate, Deactivate en VBA?

En VBA (Visual Basic for Applications), los eventos `Activate` y `Deactivate` son comúnmente utilizados en el contexto de hojas de Excel (`Worksheet`) o libros de Excel (`Workbook`). Estos eventos se disparan automáticamente cuando una hoja o un libro se activa o desactiva, respectivamente. Activar una hoja significa que se ha seleccionado y es la hoja activa en el momento, mientras que desactivar se refiere a cuando otra hoja es seleccionada y la anterior deja de ser la activa.

Aquí te explico cómo se pueden utilizar estos eventos:

Usar el evento Activate para una hoja de trabajo

Si quieres ejecutar un código cada vez que una hoja específica es activada, haces lo siguiente:

Private Sub Worksheet_Activate()
    MsgBox "La hoja ha sido activada"
    ' Coloca aquí el código que quiera que se ejecute
End Sub
  • Abre el Editor de VBA presionando `ALT` + `F11`.
  • En el panel de Project – VBAProject, encuentra el nombre de la hoja donde quieras establecer el evento.
  • Haz doble clic en el nombre de la hoja para abrir el editor de código para esa hoja.
  • En la ventana de código, selecciona «Worksheet» desde el primer cuadro desplegable en la parte superior izquierda.
  • Elige «Activate» desde el segundo cuadro desplegable y escriba el código que desees ejecutar en el evento:

Usar el evento Deactivate para una hoja de trabajo

Para ejecutar un código cuando una hoja se desactiva:

Private Sub Worksheet_Deactivate()
    MsgBox "La hoja ha sido desactivada"
    ' Coloca aquí el código que quiera que se ejecute
End Sub
  • Sigue los pasos 1 y 2 del ejemplo anterior.
  • En la ventana de código, selecciona «Worksheet» desde el primer cuadro desplegable.
  • Elige «Deactivate» desde el segundo cuadro desplegable y escribe el código correspondiente:

Usar el evento Activate para un libro de trabajo

Si necesitas ejecutar un código cuando un libro específico se activa:

Private Sub Workbook_Activate()
    MsgBox "El libro ha sido activado"
    ' Aquí va tu código
End Sub
  • Abre el editor de código de VBA y encuentra «ThisWorkbook» en el panel Project – VBAProject.
  • Haz doble clic en «ThisWorkbook» para abrir el editor de código.
  • Elige «Workbook» desde el primer cuadro desplegable.
  • Elige «Activate» desde el segundo cuadro desplegable:

Usar el evento Deactivate para un libro de trabajo

De manera similar, para ejecutar un código cuando el libro de trabajo se desactiva:

Private Sub Workbook_Deactivate()
    MsgBox "El libro ha sido desactivado"
    ' Tu código aquí
End Sub
  • Abre el código para «ThisWorkbook» como se describió en el ejemplo anteriores.
  • Elige «Workbook» y luego «Deactivate» en los cuadros desplegables:

Recuerda que estos eventos son específicos de la hoja o libro en el cual estás escribiendo el código, y no se aplicarán a otros elementos a menos que también incluyas código en los respectivos módulos de esos elementos.

Es importante destacar que el código se ejecutará cada vez que ocurra el evento, entonces asegúrate de que sea eficiente y no interfiera con la usabilidad normal del libro por parte del usuario.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario