Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Eine Frage, was bewirkt:Application.EnableEvents =

Forumthread: Eine Frage, was bewirkt:Application.EnableEvents =

Eine Frage, was bewirkt:Application.EnableEvents =
27.02.2009 10:18:53
Karsten
Hallo...
Eine Frage, was bewirkt:
Application.EnableEvents = True bzw. False
Danke
Karsten
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA Help
27.02.2009 10:27:47
Renee
Hi Karsten,
Im VBE Editor Cursor auf das Wort EnableEvents setzten und F1 drücken:

EnableEvents-Eigenschaft
True, wenn Ereignisse für das angegebene Objekt aktiviert sind. Boolean Schreib-Lese- _
Zugriff.
Beispiel zur EnableEvents-Eigenschaft
In diesem Beispiel werden Ereignisse vor dem Speichern einer Datei deaktiviert, so dass das  _
Ereignis BeforeSave nicht auftritt.
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True


GreetZ Renée
Anzeige
AW: VBA Help
27.02.2009 10:42:20
Karsten
Hallo Renee,
Danke
Gruß
Karsten

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Anwendung der EnableEvents-Eigenschaft in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor (VBE) in Excel, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBA-Projekt“ > Einfügen > Modul.

  3. Schreibe den folgenden Code in das Modul:

    Sub BeispielEnableEvents()
       ' Deaktiviert Ereignisse
       Application.EnableEvents = False
       ' Deine Code-Logik hier
       ' Aktiviert Ereignisse wieder
       Application.EnableEvents = True
    End Sub
  4. Führe das Makro aus: Mit F5 oder über das Menü Run.

  5. Überprüfe die Auswirkungen: Achte darauf, dass während der Ausführung von Application.EnableEvents = False keine Ereignisse ausgelöst werden.


Häufige Fehler und Lösungen

  • Fehler: Ereignisse werden nicht wieder aktiviert.

    • Lösung: Stelle sicher, dass Application.EnableEvents = True nach dem Hauptcode ausgeführt wird. Es ist ratsam, dies in einer Finally-Logik oder im ErrorHandler zu platzieren, um versehentliche Deaktivierungen zu vermeiden.
  • Fehler: Programm reagiert nicht mehr.

    • Lösung: Wenn Du vergessen hast, die Ereignisse wieder zu aktivieren, kann Excel in einem Zustand verharren, in dem keine Ereignisse mehr ausgeführt werden. Nutze den Task-Manager, um Excel zu schließen, und überprüfe Deinen Code.

Alternative Methoden

  • Verwendung von With-Anweisungen: Du kannst Application.EnableEvents innerhalb einer With-Anweisung nutzen, um den Code klarer strukturiert zu halten. Beispiel:

    With Application
       .EnableEvents = False
       ' Deine Logik hier
       .EnableEvents = True
    End With
  • Globale Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um sicherzustellen, dass die Ereignisse immer reaktiviert werden, selbst wenn ein Fehler auftritt.


Praktische Beispiele

  1. Deaktivieren von Ereignissen beim Speichern:

    Sub SpeichernOhneEreignisse()
       Application.EnableEvents = False
       ActiveWorkbook.Save
       Application.EnableEvents = True
    End Sub
  2. Verhindern von doppeltem Auslösen:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       ' Deine Logik hier
       Application.EnableEvents = True
    End Sub

Tipps für Profis

  • Dokumentiere Deinen Code: Füge Kommentare hinzu, um klarzustellen, wann Du Application.EnableEvents aktivierst oder deaktivierst.
  • Teste in einer sicheren Umgebung: Arbeite mit Kopien Deiner Arbeitsblätter, um unerwartete Konsequenzen zu vermeiden.
  • Bedenke Performance: Das häufige Aktivieren und Deaktivieren von Ereignissen kann die Performance beeinträchtigen. Nutze es nur, wenn nötig.

FAQ: Häufige Fragen

1. Was bewirkt Application.EnableEvents = False?
Es deaktiviert alle Ereignisse in Excel, sodass keine automatischen Reaktionen auf Änderungen oder Aktionen stattfinden.

2. Wann sollte ich Application.EnableEvents = True verwenden?
Du solltest es verwenden, um die Ereignisse nach dem Ausführen von Code wieder zu aktivieren, insbesondere um sicherzustellen, dass alle automatisierten Reaktionen wieder normal funktionieren.