Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Event bei Wechsel des WorkSheet

Event bei Wechsel des WorkSheet
14.10.2016 12:19:18
Ted
Hallo,
ich versuche einen Event zu nutzen, der beim Wechsel des Worksheet ausgelöst wird. Dabei soll es gleichgültig sein, welches Sheet aktiviert wird.
Ich habe folgende Möglichkeiten im Netz gefunden, die jedoch alle drei niemals ausgelöst werden:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] aktiviert."
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox ("Ja")
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox ("auch")
End Sub
Habt Ihr eine Lösung für mich?
Ich danke schonma.
Gruß
Ted
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 12:25:51
Daniel
Hi
richtig ist:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
End Sub
der Code muss im Modul "DieseArbeitsmappe" stehen.
gruß Daniel
AW: Event bei Wechsel des WorkSheet
14.10.2016 13:26:23
Ted
Hallo Daniel,
mein zuerst genanntes Beispiel ist identisch mit Deinem. Dies funktioniert, wie gesagt, NICHT.
Gruß
Ted
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 13:34:17
Daniel
Hi
ist jetzt schwer zu sagen, was du da falsch gemacht hast, weil ich deine Datei nicht kenne.
vielleicht hast du:
- den code im falschen Modul eingefügt
- vergessen, beim Start der Datei die markos zu aktivieren
- du befindest dich noch im Entwurfsmodus
- du hast vorher mal irgendwann den Befehl Application.EnableEvents = False ausgeführt und die Events noch nicht wieder aktiviert
- du hast zuvor eine andere Mappe aktivierst und klickst jetzt dieses Blatt an, dann wird nicht SheetActivate ausgeführt, sondern WorkbookActivate (sofern es vorhanden ist)
das wären jetzt die Möglichkeiten, die mir so spontan einfallen.
falls immer noch nicht das richtige dabei ist, musst du deine Datei hochladen, oder bei der NSA nachfragen, damit die mal auf deinen Rechner schauen.
Gruß Daniel
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 14:02:49
Ted
Hi,
- Modul ist "DieseArbeitsmappe"
- Makros sind bei mir standardmäßig aktiviert
- Funktioniert in beiden Modi nicht
- Nein, Events sind bei mir nicht ausgeschaltet, andere Events, wie z. B. Worksheet_SelectionChange funktionieren. Ich habe Application.EnableEvents = true trotzdem zum Test ausgeführt, ohne Erfolg
- Nein, es ist nur diese eine Mappe geöffnet
Ich werde es mal mit einer komplett neuen Mappe auf einem anderen Rechner versuchen. Wenn es dort dann auch nicht klappt, werde ich die Mappe hochladen.
Danke und Gruß
Ted
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 14:07:02
baschti007
Du hast auch die Mappe gespeichert und einmal wieder geöffnet ?
Gruß Basti
AW: Event bei Wechsel des WorkSheet
14.10.2016 14:21:48
Daniel
Hi
bliebe noch die Option ein Tipfehler in der Makro-Kopfzeile.
Eventmakros sollte man daher nicht durch Tippen oder Kopieren erzeugen, sondern immer über die Auswahl des Objektes und des Events in den Comboboxen oberhalb des Codefensters (links das Objekt auswählen, dann rechts das Event aus der Liste.
dann wird da Eventmakro mit korrekter Bezeichnung eingefügt.
Gruß Daniel
Anzeige
AW: Event bei Wechsel des WorkSheet
15.10.2016 17:07:49
Ted
Hallo miteinander,
aaalso, ich habe das Gleiche erfolgreich auf meinem privaten PC gemacht. Auch die gestern angelegte Mappe, die auf meinem Job-Notebook nicht funktioniert, läuft hier einwandfrei.
Ich werde die hier erstellte Mappe am Montag mit auf die Arbeit nehmen und dort testen. Mal sehen.
@Basti: Ich habe sogar das Notebook neu gestartet.
Gruß
Ted
Anzeige
AW: Event bei Wechsel des WorkSheet
16.10.2016 08:24:19
Bastian
Wow Ted du bist mein Held ;)
AW: Event bei Wechsel des WorkSheet
17.10.2016 06:08:41
Ted
lol
AW: Event bei Wechsel des WorkSheet
17.10.2016 08:56:06
Ted
Ha! Die auf meinem Privatrechner erstellte Datei funktioniert auch hier, die erste weiterhin nicht. Da ich sämtliche Inhalte per Copy&Paste eingefügt hatte, kann ein Tippfehler ausgeschlossen werden. Also, ein nicht rekonstruierbares Problem und damit nur unnötige Arbeit. Hurra.
Ich danke allen für ihre Hilfe.
Gruß
Ted
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 12:28:03
Dieter(Drummer)
Hallo Ted,
wenn du z.B. diesen Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] aktiviert."
End Sub

unter "Diese Arbeitsmappe" einfügst und dan z.B. irgendeine Tabelle aktivierst, wird dir der Name der Tabelle angezeigt, also das Makro ausgelöst. Evtl. hilft dir das weiter.
Gruß, Dieter(Drummer)
Anzeige
AW: Event bei Wechsel des WorkSheet
14.10.2016 12:33:33
fcs
Hallo Ted,
die Ereignismakros, die für alle Blätter in der Arbeitsmappe gelten sollen, müssen im VBA-Editor unter dem Code-Modul "DieseArbeitsmappe" (engl.: "ThisWorkbook") angelegt werden.
Zusätzlich mussen beim Öffnen der Datei die Makros aktiviert werden bzw. die Datei muss in einemvertrauten Verzeichnis liegen.
Das Change-Ereignis ist hier nicht zweckmäßig, denn es reagiert nur auf Änderungen/Werteingaben in Zellen.
Gruß
Franz
Gruß
Franz
'Makro muss im VBA-Editor unter "DieseArbeitsmappe/Thisworkbook eingefügt werden.
'Deactivate-Makro wird vor dem Activate-Makro ausgeführt.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] aktiviert."
End Sub
Private Sub Workbook_SheetdeActivate(ByVal Sh As Object)
MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] deaktiviert."
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Ereignis bei Wechsel des Worksheets in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Ereignis bei Wechsel des Worksheets in Excel VBA zu implementieren, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Suche im Projektfenster links nach der Arbeitsmappe, in der du das Makro erstellen möchtest.

  3. Doppelklicke auf DieseArbeitsmappe (oder ThisWorkbook in der englischen Version).

  4. Füge den folgenden Code ein:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       MsgBox "Es wurde Tabellenblatt [ " & Sh.Name & " ] aktiviert."
    End Sub
  5. Schließe den VBA-Editor und speichere die Arbeitsmappe als Makro-fähige Datei (z.B. .xlsm).

  6. Aktiviere die Makros beim Öffnen der Datei.

Jetzt sollte das Makro jedes Mal eine Nachricht anzeigen, wenn du zwischen den Excel Worksheets wechselst.


Häufige Fehler und Lösungen

Hier sind einige häufige Probleme, die auftreten können, wenn das Excel VBA Ereignis nicht funktioniert:

  • Code im falschen Modul: Stelle sicher, dass der Code im Modul "DieseArbeitsmappe" eingefügt ist.

  • Makros nicht aktiviert: Überprüfe, ob die Makros in den Excel-Optionen aktiviert sind.

  • Entwurfsmodus aktiv: Vergewissere dich, dass du nicht im Entwurfsmodus bist.

  • Events deaktiviert: Es könnte sein, dass du den Befehl Application.EnableEvents = False ausgeführt hast. Stelle sicher, dass die Events wieder aktiviert sind:

    Application.EnableEvents = True
  • Vorherige Mappe: Wenn du eine andere Mappe geöffnet hast und dann zu einem Sheet wechselst, kann es sein, dass das Workbook_SheetActivate nicht ausgelöst wird. In diesem Fall wird Workbook_Activate verwendet.


Alternative Methoden

Falls du eine andere Methode zur Verwendung von Excel VBA Worksheet Events suchst, kannst du auch das Worksheet_Activate-Ereignis nutzen. Das funktioniert ähnlich:

  1. Doppelklicke auf das entsprechende Worksheet im Projektfenster.
  2. Füge den folgenden Code ein:

    Private Sub Worksheet_Activate()
       MsgBox "Das Tabellenblatt wurde aktiviert."
    End Sub

Dies wird jedoch nur für das spezifische Blatt ausgelöst, nicht für alle Blätter in der Arbeitsmappe.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Excel VBA Worksheet Events nutzen kannst:

  1. Aktivieren eines Blattes:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       MsgBox "Aktiviertes Blatt: " & Sh.Name
    End Sub
  2. Deaktivieren eines Blattes:

    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
       MsgBox "Deaktiviertes Blatt: " & Sh.Name
    End Sub
  3. Änderungen in einem Blatt erkennen:

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
       MsgBox "Änderung in Blatt: " & Sh.Name
    End Sub

Tipps für Profis

  • Sauberer Code: Verwende die Comboboxen im VBA-Editor, um Events auszuwählen, um Tippfehler zu vermeiden.
  • Debugging: Nutze Debug.Print anstelle von MsgBox, um bei der Fehlersuche im Hintergrund zu protokollieren, ohne ständig Pop-ups zu sehen.
  • Performance: Vermeide unnötige Berechnungen in Events, insbesondere im Worksheet_Change-Ereignis, um die Performance zu verbessern.

FAQ: Häufige Fragen

1. Warum wird das SheetActivate-Ereignis nicht ausgelöst?
Das kann daran liegen, dass der Code nicht im richtigen Modul eingefügt wurde oder dass die Makros nicht aktiviert sind.

2. Wie kann ich zwischen Excel Sheets wechseln?
Du kannst das Makro Excel VBA Tabellenblatt wechseln verwenden, um das aktive Blatt zu ändern und ein Ereignis auszulösen.

3. Was ist der Unterschied zwischen Workbook und Worksheet Events?
Workbook Events betreffen die gesamte Arbeitsmappe, während Worksheet Events spezifisch für ein bestimmtes Blatt sind.

4. Wie kann ich sicherstellen, dass mein VBA-Code korrekt ist?
Verwende die Comboboxen im VBA-Editor, um den Code zu generieren, anstatt ihn manuell einzugeben. Das reduziert Tippfehler.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige