Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
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

ESC Abbruch versagt ivm. anderem ErrorHandling

ESC Abbruch versagt ivm. anderem ErrorHandling
13.02.2009 18:47:00
Andreas
Hallo Herber Fans,
ich habe einen Code der in PivotTabellen nach einem bestimmten Schema PivotItems auf visible = true/ false setzt. Da bei manchen (fehlerhaften) Pivottabellen dort dann Fehler auftauchen, habe ich ein Errorhandling eingebaut, welches über die Deklaration intFehler as Long und On Error goto Errorhandling erkennen kann, ob ein Fehler beim setzen des visible Status aufgetreten ist, um dann vorzuschlagen die Pivot zu reparieren.
So weit so gut. Bei manchen Felder ist die Laufzeit für ca. 1.000 Items sehr lang. Also möchte ich die Möglichkeit implementieren, daß ganz sauber abzubrechen, damit am Ende des Codes Screenupdating und andere wieder auf true gesetzt werden und der VBA Debugger/ Editor nicht kommt.
Ich habe den Befehl .EnableCancelKey hier im Forum gefunden.
Wenn der Code läuft und auf ESC gedrückt wird, soll der Code erkennen, daß es ein sauberer User- Abbruch war. Aber bisher bringt diese Methode auch ErrorMeldung „1004 Die Visible-Eigenschaft des PivotItem-Objektes kann nicht festgelegt werden.“
Diese soll aber nur kommen, wenn der Code tatsächlich einen Fehler entdeckt. Nicht bei ESC Betätigung.
Wie kann das realisiert werden?
Ich bin für jeden Hinweis sehr dankbar.
https://www.herber.de/bbs/user/59441.xls
Vielen Dank und Grüße, Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: ESC Abbruch versagt ivm. anderem ErrorHandling
14.02.2009 18:51:00
Luschi
Hallo Andreas,
lt. Excel-Vba-Hilfe ist die Reihenfolge so:
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
Allerding steht auch dies hier drin:
Die EnableCancelKey-Eigenschaft wird immer auf xlInterruptxlInterrupt zurückgesetzt, sobald Microsoft Excel Leerlaufzeit hat und kein Code ausgeführt wird. Um Unterbrechungen in einer Prozedur aufzufangen oder zu sperren, müssen Sie die EnableCancelKey-Eigenschaft bei jedem Aufruf der Prozedur explizit ändern.
Deshalb würde ich es mal so versuchen:

On Error GoTo handleCancel
For Each pvItem In pvTable.PivotFields("testitems").PivotItems
Application.EnableCancelKey = xlErrorHandler
'    intFehler = 1
pvItem.Visible = True
'    intFehler = 0
Next pvItem

Gruß von Luschi
aus klein-Paris

Anzeige
AW: ESC Abbruch versagt ivm. anderem ErrorHandling
16.02.2009 15:52:00
Andreas
Hallo Luschi,
ich habe es so umgesetzt, wie von Dir vorgeschlagen. Wenn ich CancelKey aktiviere und zum ErrorHandling springen lasse, dann wird bei Drücken von ESC der Fehler 1004 erkannt. Leider nicht der Fehler 18. Wenn ich in der Schleife pvItem.visible gegen etwas unverfängliches wie z.B. debug.print pvitem.name austausche und dann den Code abbreche, gibt er korrekt den Fehler 18 aus.
Wenn mitten in der Schleife abgebrochen wird, gibt er den Hauptfehler aus und erkennt ESC nicht korrekt.
Ich habe eine andere Idee, wie es zu lösen sein könnte. An der arbeite ich gerade und werde dabei auch eine Code Zeile verwenden, die Du mir im letzten Thread gegen hast (Fehler in Pivotitems). So könnte es gehen. Aber korrekt wäre es doch, wenn er über EnableCancel Key die ESC Taste ÜBER alles andere stellt und erkennt?!
Was meinst Du? Hast Du noch eine Idee?
Vielen Dank und Grüße, Andreas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige