¿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:

  • 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:
VBA

Private Sub Worksheet_Activate()
    MsgBox "La hoja ha sido activada"
    ' Coloca aquí el código que quiera que se ejecute
End Sub

Usar el evento Deactivate para una hoja de trabajo

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

  • 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:
VBA

Private Sub Worksheet_Deactivate()
    MsgBox "La hoja ha sido desactivada"
    ' Coloca aquí el código que quiera que se ejecute
End Sub

Usar el evento Activate para un libro de trabajo

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

  • 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.
VBA

Private Sub Workbook_Activate()
    MsgBox "El libro ha sido activado"
    ' Aquí va tu código
End Sub

Usar el evento Deactivate para un libro de trabajo

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

  • Abre el código para «ThisWorkbook» como se describió en el ejemplo anteriores.
  • Elige «Workbook» y luego «Deactivate» en los cuadros desplegables.
VBA

Private Sub Workbook_Deactivate()
    MsgBox "El libro ha sido desactivado"
    ' Tu código aquí
End Sub

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

¡Únete a nuestro Grupo de Facebook!

Deja un comentario