TOP

VBA-Lektion 11.2. Arbeitsblattereignisse (Worksheet Events)

In der vorherigen Lektion haben wir die Ereignisse im Zusammenhang mit dem gesamten Buch betrachtet. Jetzt konzentrieren wir uns auf Ereignisse, die sich auf ein einzelnes Blatt beziehen.


Worksheet_SelectionChange (Öffnen der Arbeitsmappe)

Um ereignisbasierte Anweisungen für ein einzelnes Arbeitsblatt auszuführen, wählen Sie das Arbeitsblatt im Editor und dann Worksheet aus:

Das SelectionChange-Ereignis wird standardmäßig hinzugefügt. Dieses Ereignis wird immer dann ausgelöst, wenn sich der Inhalt des Bereichs ändert:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Der folgende Code fügt beispielsweise einer oder mehreren ausgewählten Zellen Füllfarben hinzu und entfernt automatisch die Füllfarbe aus dem zuvor ausgewählten Bereich, wenn sich dieser Bereich ändert:

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

     If previous_selection <> "" Then
         'Hintergrundfarbe aus vorheriger Auswahl entfernen:
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     'Hintergrundfarbe zur aktuellen Auswahl hinzufügen:
     Target.Interior.Color = RGB(181, 244, 0)

     'Speichern der Adresse der aktuellen Auswahl:
     previous_selection = Target.Address
End Sub

Worksheet_Activate (Blattaktivierungsereignis)

Dieses Ereignis tritt auf, wenn ein Arbeitsblatt aktiviert wird:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (Blatt-Deaktivierungsereignis)

Dieses Ereignis tritt auf, wenn ein anderes Arbeitsblatt aktiviert wird:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (Doppelklick-Ereignis auf einer Zelle)

Dieses Ereignis tritt auf, wenn auf eine Arbeitsblattzelle doppelgeklickt wird:

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

End Sub

Worksheet_BeforeRightClick (Ereignis vor Rechtsklick)

Dieses Ereignis tritt ein, bevor Sie mit der rechten Maustaste auf das Arbeitsblatt klicken:

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

End Sub

Worksheet_Calculate (Arbeitsblattberechnungsereignis)

Dieses Ereignis tritt immer dann auf, wenn Daten in einem Arbeitsblatt berechnet oder neu berechnet werden:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (Zellinhaltsänderungsereignis)

Dieses Ereignis tritt immer dann auf, wenn sich der Inhalt der Zellen auf dem angegebenen Blatt ändert:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (Link-Klick-Ereignis)

Dieses Ereignis tritt auf, wenn auf einen Link (Hypertext) geklickt wird:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Alle Ereignisse vorübergehend deaktivieren

Um den Code ohne Ereignisse auszuführen, fügen Sie ihn wie folgt zwischen zwei Codezeilen ein:

 Application.EnableEvents = False '=> Ereignisse deaktivieren
 'Einige Anweisungen...
 Application.EnableEvents = True '=> Ereignisse wieder aktivieren