En la lección anterior, consideramos los eventos relacionados con todo el libro. Ahora nos centraremos en los eventos relacionados con una sola hoja.
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
Este evento ocurre cuando se activa una hoja de cálculo:
Private Sub Worksheet_Activate() End Sub
Este evento ocurre cuando se activa otra hoja de trabajo:
Private Sub Worksheet_Deactivate() End Sub
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
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
Este evento ocurre cada vez que se calculan o recalculan datos en una hoja de cálculo:
Private Sub Worksheet_Calculate() End Sub
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
Este evento ocurre cuando se hace clic en un enlace (hipertexto):
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
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