Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Befehl 'Call' wieder rückgängig machen

Befehl 'Call' wieder rückgängig machen
20.05.2005 11:26:45
Holger
Hallo zusammen,
gibt es eine Möglichkeit den Befehl call wieder zu 'decallen', wenn man z.B. in einer mit call aufgerufenen Prozedur einen Fehler mit 'on error' findet, springt er nämlich zurück in die Prozedur die den call ausgeführt hat und kann dann den call nicht nochmal ausführen, da der call wohl noch aktiv ist.
MfG
Holger Wächter

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

Betreff
Datum
Anwender
Anzeige
AW: Befehl 'Call' wieder rückgängig machen
20.05.2005 12:27:26
Oberschlumpf
Hi Holger
Wenn Du mit On Error arbeitest, musst Du in der gleichen Routine, in der der Fehler auftritt, eben auch diesen Fehler mit entsprechenden Befehlen abfangen.
Bsp. (Fehler: Division durch 0)

Sub Test()
On Error GoTo Fehler
VBA-Code
Ergebnis = 5 / 0
Ergebnis = Ergebnis + 1
weiterer VBA-Code
Exit Sub 'verhindert ein Ausführen der Fehlerbehandlung, wenn kein Fehler auftritt
Fehler:
If Err.Number = x Then 'für x die Nummer eintragen, die dem Fehler DIV/0 zugewiesen ist
MsgBox Err.Number & " " & Err.Description
Resume Next 'macht in der Zeile weiter, die direkt nach der "Fehlerzeile" kommt
End Sub

Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Befehl 'Call' wieder rückgängig machen
20.05.2005 13:18:02
Holger
Hallo,
das habe ich gemacht. Nur rufe ich in einer Prozedur(Hauptproz) mit call die Testproz(Wert1, Wert2) auf.
Wenn in der Testproz nun ein Fehler auftritt, springt er zurück in die Hauptproz und versucht die Testproz erneut aufzurufen. Die findet er aber nicht mehr, da Sie schon aufgerufen ist. Kann man daher den aufruf deaktivieren.
Hinter on error goto habe ich eine komplette Fehleranalyse mit Logfile u.s.w...
MfG
Holger Wächter
AW: Befehl 'Call' wieder rückgängig machen
21.05.2005 08:20:07
Oberschlumpf
Hallo Holger
Du musst in JEDER Prozedur eine Fehlerroutine einbauen.

Sub Test()
On Error Goto Fehler
Call Test2
Exit sub
Fehler:
MsgBox "Fehler!"
Resume Next
End Sub
Sub Test2()
a = 1 + 2
b = a / 0
c = b * 2
End Sub

würde dazu führen, dass beim Fehler in Test2 (DIV/0) tatsächlich zurück in Test gesprungen wird, um dort die Fehlerroutine abzuarbeiten.
Aber das ist natürlich nicht richtig und würde zu weiteren Fehlern führen.
So müsste es laufen:

Sub Test()
On Error Goto Fehler
Call Test2
Exit sub
Fehler:
MsgBox "Fehler!"
Resume Next
End Sub
Sub Test2()
On Error Goto Fehler
a = 1 + 2
b = a / 0
c = b * 2
Fehler:
MsgBox "Fehler!"
Resume Next
End Sub

Jetzt würde in Test2 die Err-Routine durchlaufen werden und mit c = b * 2 würde es in Test2 weitergehen.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Befehl 'Call' wieder rückgängig machen
20.05.2005 14:12:12
Heiko
Hallo Holger,
verstehe dein Problem nicht ganz, wenn du ein Unterprogramm aufrufst, dort eine Fehler auftritt und du dann mit On error ne Fehlersub startest. Wird doch die Fehlersub ausgeführt, dann zurückgesprungen in das Unterprogramm ( Das OnError Sprungziel sollte natürlich immer zuletzt in der Sub stehen) das wird beendet und dann bist du im Hauptprogramm mit der Zeile (Aufruf Unterprogramm) durch.
Wo ist da jetzt das Problem, kannst ja mal ein bisschen Code einstellen vielleicht wirds dann deutlicher.
Gruß Heiko

PS: Rückmeldung wäre nett !

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige