TOP

VBA-Lección 11.2. Eventos de la hoja de trabajo (Worksheet Events)

En la lección anterior, consideramos los eventos relacionados con todo el libro. Ahora nos centraremos en los eventos relacionados con una sola hoja.


Worksheet_SelectionChange (Abriendo el libro de trabajo)

Para ejecutar instrucciones basadas en eventos para una hoja de trabajo individual, seleccione la hoja de trabajo en el editor, luego Worksheet:

El evento SelectionChange se agregará de forma predeterminada. Este evento se activa cada vez que cambia el contenido del rango:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Por ejemplo, el siguiente código agrega colores de relleno a una o más celdas seleccionadas y elimina automáticamente el color de relleno del rango seleccionado previamente cuando ese rango cambia:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Static previous_selection As String

     If previous_selection <> "" Then
         'Eliminación del color de fondo de la selección anterior:
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     'Agregar color de fondo a la selección actual:
     Target.Interior.Color = RGB(181, 244, 0)

     'Guardar la dirección de la selección actual:
     previous_selection = Target.Address
End Sub

Worksheet_Activate (Evento de activación de hoja)

Este evento ocurre cuando se activa una hoja de cálculo:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (Evento de desactivación de hoja)

Este evento ocurre cuando se activa otra hoja de trabajo:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (evento de doble clic en una celda)

Este evento ocurre cuando se hace doble clic en una celda de la hoja de cálculo:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick (Evento antes del clic derecho)

Este evento ocurre antes de que el botón derecho del mouse haga clic en la hoja de trabajo:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate (evento de cálculo de hoja de cálculo)

Este evento ocurre cada vez que se calculan o recalculan datos en una hoja de cálculo:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (evento de cambio de contenido de celda)

Este evento ocurre cada vez que cambia el contenido de las celdas en la hoja dada:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (evento de clic en enlace)

Este evento ocurre cuando se hace clic en un enlace (hipertexto):

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Desactivar temporalmente todos los eventos

Para ejecutar el código sin ningún evento, insértelo entre dos líneas de código como este:

 Application.EnableEvents = False '=> deshabilitar eventos
 'Algunas instrucciones...
 Application.EnableEvents = True '=> volver a habilitar eventos