Ereignismakro / -prozedur |
|
|
|
Ereignismakros bzw Ereignisprozeduren sind an ihr jeweiliges Objekt ( Tabellenblatt, Arbeitsmappe ) gebunden. Wir der Name schon sagt, reagieren sie auf ein Ereignis, welches durch den Anwender ausgelöst wird. Ereignisse können z.B. das Aktivieren eines Tabellenblatts oder die Änderung eines Zellwertes etc sein. Nachfolgend eine Auflistung der möglichen Ereignisse für ein Tabellenblatt. Da der Code an das Objekt "Tabellenblatt" gebunden ist, gehört er nicht in ein "Allgemeines Modul".
Der schnellste Weg in die Entwicklungsumgebung zum richtigen Modul ist ein Rechtklick auf den Tabellenreiter und aus dem Kontextmenü "Code anzeigen" auswählen.
Es öffnet sich das Fenster für das betreffende Tabellenblatt. Im linken Dropdownfeld kann von "Allgemein" auf "Worksheet" gewechselt werden.
Im rechten Dropdownfeld steht nun eine Auswahl der möglichen Ereignisse zur Verfügung.
Die möglichen Ereignisse und durch was sie ausgelöst werden.
|
Tabellenblatt | | A | B | C | 1 | Dropdown | Erzeugte Codezeile | Ereignis | 2 | Activate | Worksheet_Activate() | Codeausführung durch Wechsel von einem anderen Tabellenblatt auf dieses. Es wird aktiviert. | 3 | BeforeDoubleClick | Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) | Codeausführung durch Doppelklick in eine Zelle. | 4 | BeforeRightClick | Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) | Codeausführung durch Rechtsklick in eine Zelle. | 5 | Calculate | Worksheet_Calculate | Findet auf dem Tabellenblatt eine Berechnung per Formel statt, so wird ein Code ausgeführt. | 6 | Change | Worksheet_Change(ByVal Target As Range) | Codeausführung durch Änderung eines Zellwertes. | 7 | Deactivate | Worksheet_Deactivate | Codeausführung durch Verlassen des Tabellenblatts. | 8 | FollowHyperlink | Worksheet_FollowHyperlink(ByVal Target As Hyperlink) | Codeausführung durch Anklicken einer Zelle mit Hyperlink. | 9 | PivotTableUpdate | Worksheet_PivotTableUpdate(ByVal Target As PivotTable) | Codeausführung durch Aktualisieren einer Pivottabelle. | 10 | SelectionChange | Worksheet_SelectionChange(ByVal Target As Range) | Mit jedem Zellwechsel wird ein Code ausgeführt | | | Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download
Die Bedeutung der übergebenen Werte:
ByVal Target As Range - Target, der Bereich bzw die Zelle in der das Ereignis ausgelöst wurde.
ByVal Target As Hyperlink - Target, Textanzeige des Hyperlinks.
ByVal Target As PivotTable - Target, die Pivottabelle, welche aktualisiert wird.
Cancel As Boolean - Cancel, Boolescher Wert. Die Möglichkeit die weitere Codeausführung zu unterbrechen.
Ein Codebeispiel. Es wird in einer beliebigen Zelle der Wert geändert.
Bei Ausführung erscheint eine Meldung über Zelladresse und neuen Zellwert.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Es wurde der Zellwert der Zelle: " & Target.Address & " geändert." & vbCr _
& "Neuer Zellwert: " & Target.Value
End Sub
Diese Codes stehen jetzt nur in dem entsprechenden Tabellenblatt zur Verfügung. Sollen sie in einem weiteren gültig sein, so muss der Code ebenfalls in dem gewünschten Blatt geschrieben/kopiert werden. Sollen sie in allen Tabellenblättern der Datei verfügbar sein, so helfen die Ereignismakros/-prozeduren der Arbeitsmappe.
Durch einen Doppelklick im Projektexplorer auf "DieseArbeitsmappe" öffnet sich das Codefenster für die Datei.
Hier kann im linken Dropdown wieder von Allgemein auf Workbook gewechselt werden. Im rechten Dropdownfeld stehen nun alle möglichen Ereignisse für die aktuelle Datei zur Verfügung.
Nachfolgend 2 Ereignisse aus der Liste.
|
Workbook | | A | B | C | 1 | Dropdown | Erzeugte Codezeile | Ereignis | 2 | SheetChange | Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) | Codeausführung durch Änderung eines Zellwertes auf einem Tabellenblatt innerhalb der Arbeitsmappe. | 3 | SheetActivate | Workbook_SheetActivate(ByVal Sh As Object) | Codeausführung durch Aktivierung eines Tabellenblatts innerhalb der Arbeitsmappe. | | | Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download
Die Bedeutung der übergebenen Werte:
ByVal Sh As Object - Sh, dass jeweilige Tabellenblatt, in welchem das Ereignis ausgelöst wurde.
Ein Beispielcode:
Es erfolgt eine Meldung, welches Tabellenblatt aktiviert wurde.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] aktiviert."
End Sub
2 weitere Beispiele für den Einsatz eines Ereignismakros / -prozedur finden sich hier:
|