Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1176to1180
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vorkehren, dass enableevents nicht FALSE bleibt

Vorkehren, dass enableevents nicht FALSE bleibt
Peter
Guten Tag
Schlage mich zurzeit mit dem Problem herum, dass zwischendurch nach Ablauf von Codes (resp. vorzeitigen Abbrüchen) Application.EnableEvents auf FALSE bleibt.
Ich habe nun in meinen Codes, in welchen beim Durchlaufen EnableEvents auf FALSE gesetzt wird und am Schluss wieder auf TRUE am Anfang des codes
On Error GoTo ERRORHANDLER und am Schluss
ERRORHANDLER:
Application.EnableEvents = True
geschrieben.
Meine Frage:
Was passiert, wenn ich den Code "manuell" innerhalb von VBA oder mit der ESC Taste abbreche? Wie kann ich sicherstellen, dass in diesem Fall EnableEvents wieder auf TRUE gesetzt wird? Gibt es nebst Fehlern ("On Error") und manuellen Abbrüchen noch andere Faktoren, die hier zu berücksichtigen sind?
Danke für die Unterstützung.
Gruss, Peter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Vorkehren, dass enableevents nicht FALSE bleibt
14.09.2010 12:37:14
Nepumuk
Hallo,
du kannst den manuellen Abbruch entweder so unterbinden:
Application.EnableCancelKey = xlDisabled

Oder so in den Errorhandler laufen lassen:
Application.EnableCancelKey = xlErrorHandler

Das gibt dann den Fehler 18 "Unterbrechung durch Benutzer"
Zurücksetzen dann so:
Application.EnableCancelKey = xlInterrupt

Die Methode musst du aber in jeder Prozedur aufrufen, da sie nur auf Prozedurebene gültig ist. Du musst ihn also nicht zurücksetzen, das geschieht automatisch mit dem beenden der Prozedur.
Andere Möglichkeiten den Code abzubrechen bietet nur noch der Taskmanager. Da ist es dann sowieso egal ob Events ein- oder ausgeschaltet sind.
Gruß
Nepumuk
Anzeige
AW: Vorkehren, dass enableevents nicht FALSE bleibt
14.09.2010 13:58:42
Peter
Hallo Nepumuk
Vielen Dank für die Antwort.
Ich habe noch zwei Anschlussfragen:
1.
wenn ich Application.EnableCancelKey = xlErrorHandler aufrufe, muss dann der ErrorHandlker "xlErrorHandler" heissen?
2.
Ich bin mir nicht ganz sicher, was mit Prozedur genau gemeint ist. Handelt es sich um jeden Sub, der allenfalls von einem anderen Sub aufgerufen wird und auch um Funktionen? Spielt es eine Rolle, ob diese im gleichen oder einem anderen Modul stehen?
Vielen Dank und Gruss, Peter
AW: Vorkehren, dass enableevents nicht FALSE bleibt
14.09.2010 14:17:32
Nepumuk
Hallo,
probieren geht über studieren. Oder?
xlErrorHandler ist eine Excel-Konstante und hat nichts mit der Sprungmarke deines Errorhandlers zu tun.
Mit Prozedur meine ich eine Routine welche du per Button, F8 oder auch sonst irgendwie aufrufst.
In Unterroutinen welche nur von anderen Prozeduren aufgerufen werden brauchst du die EnableCancelKey-Methode nicht extra anwenden, da ist noch die der aufrufenden Prozedur gültig. Nur wenn sie mit Delay (OnTime-Methode) aufgerufen werden, musst du die EnableCancelKey-Methode in diesen anwenden.
Gruß
Nepumuk
Anzeige
AW: Vielen Dank!, owT
14.09.2010 14:22:16
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige