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

Ausführlicher ErrorCode: Wie ?

Ausführlicher ErrorCode: Wie ?
Holger,
Hallo liebes Forum,
ich habe ein Makro, welches in einer freigegebenen Datei nicht funktioniert (Laufzeitfehler 1004).
Da ich nicht im Einzelschrittmodus das Makro laufen lassen kann, würde ich gerne wissen,
in welcher zeile er hängt, welche Fehlermeldung genau etc.
Wie kann ich denn eine Error Behandlung einbauen, die mir das alles in einer Msgbox anzeigt?
Gruß
Holger
Am Anfang: On Error GoTo FBhdl, am Ende:...
24.02.2011 15:56:00
Luc:-?
…nach Exit Sub o.ä. brauchbarem Befehl, Holger,
kann dann FBhdl: If MsgBox(Err.Description & vbLf & "Fortsetzen?", vbExclamation + vbYesNo, "Fehler: " & Err.Number) = vbYes Then Stop: Resume Next stehen. Wenn du Ja dückst, bleibt das Pgm stehen und bei Fortsetzung im Einzelschrittmodus wird mit Zeile/Befehl nach dem Fehlerverursacher fortgesetzt. Das fktt aber nur, wenn das Pgm auch an einem Haltepkt anhalten würde (also bspw nicht innerhalb einer udF, deren Standort-Fml gerade mit Evaluate ausgewertet wird u.ä.).
Gruß Luc :-?
KLasse aber
24.02.2011 16:54:59
Holger,
Hi Luc,
Wie gehts die Tage?
Erstmal Vielen Dank für den Code, echt super.
Nur eine Verständnisfrage. Der Code zwecks der Errorbehandlung muss der innerhalb des Makros stehen (also innerhalb des Sub) oder außerhalb?
Könnte ich auch eine eigene Prozedur oder eine Function zur Errorbehandlung schreiben und dieses aus allen Prozeduren wiederum aufrufen? Nur wie?
On Error Goto FEHLER und FEHLER wäre der Name der Prozedur?
Anzeige
AW: KLasse aber
24.02.2011 18:01:21
Reinhard
Hallo Holger,
wenn ich wüßte wie man an den Prozedurnamen kommt kann man den der Prozedur als parameter angeben, so daß ggfs. angezeigt wird in welcher Prozedur der Fhler auftrat.
Sub Test()
Dim a
On Error GoTo hell
a = 1 / 0
MsgBox "weiter im Code"
Exit Sub
hell:
Call Fehler
Resume Next
End Sub
Sub Fehler()
MsgBox "Fehler"
End Sub

Gruß
Reinhard
Call Fehler("prozname") -> DU schreibst das...
24.02.2011 18:22:00
Luc:-?
…Pgm, Reinhard,
DU weißt wie die Proz heißt…! ;-))
Gruß Luc :-?
*aargs* :-( :-)) o.w.T.
24.02.2011 19:23:48
Reinhard


AW: KLasse aber
24.02.2011 18:42:42
Holger,
Hallo Reinhard,
Auch dir danke für den Code, in dem was interessantes sich findet.
Wenn ein Fehler passiert, springt er zur Fehlerzeile. Wenn dort dann Resume Next steht,
macht er also ik ursprünglichen Code mit der nächsten Zeile weiter. Habe ich das so richtig verstanden?
Anzeige
AW: KLasse aber
24.02.2011 19:29:25
Reinhard
Hallo Holger,
gehe doch mit F8 durch dann siehst du das.
Dank Luc :-), hier eine Variante, da kannst du wie angefragt die Fehlerroutine in allen anderen Prozeduren benutzen und es wird dir angezeigt wo der Fehler ist. GGfs als Parameter in der Aufrufenden Sub noch err.number und err.description mitgeben als 2te und 3te Parameter.
Sub Test()
Dim a
On Error GoTo hell
a = 1 / 0
MsgBox "weiter im Code"
Exit Sub
hell:
Call Fehler("Test")
Resume Next
End Sub
Sub Fehler(T)
MsgBox "Fehler in " & T
End Sub

Gruß
Reinhard
AW: KLasse aber
24.02.2011 19:38:02
Nepumuk
Hallo Gerd,
GGfs als Parameter in der Aufrufenden Sub noch err.number und err.description mitgeben als 2te und 3te Parameter.
Wozu das Objekt zerlegen und in Einzelteilen mitgeben? Übergib doch einfach das ganze Err-Objekt.
Gruß
Nepumuk
Anzeige
An Nepumuk: Das ganze Error Objekt?
28.02.2011 08:57:26
Holger,
Hallo Nepumuk,
ich fange gerade an, eine erste, kleine, allgemeingültige Errorbehandlung für mein Projekt zu schreiben.
Was meinst du damit, das ganze Error Objekt zu übergeben? Wie geht das ?
IntelliSense liefter mir die einzelnen Error Attribute, nur wie das ganze Objekt an eine Prozedur übergeben?
AW: An Nepumuk: Das ganze Error Objekt?
28.02.2011 19:28:11
Reinhard
Hallo Holger,
Sub Test()
Dim a
On Error GoTo hell
a = 1 / 0
MsgBox "weiter im Code"
Exit Sub
hell:
Call Fehler("Test", Err)
Resume Next
End Sub
Sub Fehler(ByVal T As String, Fehl As ErrObject)
Dim Mldg As String
Mldg = "Fehler in Prozedur: " & T & vbCr & vbCr
Mldg = Mldg & Fehl.Number & ": " & Fehl.Description & vbCr
MsgBox Mldg
End Sub

Gruß
Reinhard
Anzeige
AW: An Nepumuk: Das ganze Error Objekt?
01.03.2011 13:06:38
Holger,
Hallo Reinhard,
Vielen Dank für den Code, eine Frage zu dem Err Objekt, denn wenn ich das err ojekt ganz weglasse, habe ich dennoch alle Error Infos, also ist dieses Objekt nicht global gültig?
AW: An Nepumuk: Das ganze Error Objekt?
02.03.2011 20:40:43
Nepumuk
Hallo Holger,
im Prinzip JA. Da ich aber den Errorhandler der Hauptmappe auch aus einem Addin aufrufe (darin befinden sich die Ribbons) muss ich das Objekt übergeben.
Gruß
Nepumuk
So, dann also noch das,...
24.02.2011 18:18:53
Luc:-?
…Holger;
1. ? Wie geht's dir…? ;-> Hast immer noch nicht alles beantwortet… !:-|
2. Natürl innerhalb, deshalb auch am Anfang (nach Deklaration) und am Ende (vor End …)!
3. Mögl, aber dann muss der Fehler erhalten bleiben bzw übergeben wdn. Evtl spezielle Aktionen bei bestimmten Fehlern nutzen dir da aber nichts, die musst du ohnehin im F-liefernden Pgm machen. Lohnt also nur, wenn du ganze Fehlerlisten (100e bis Tsde!) auswerten willst und sonst nichts weiter machst. Anderenfalls müsste die F-Behdl ja für viele Prozeduren gleich sein (Aufwand:Nutzen!).
4. On Error Goto FEHLER geht nicht, wenn FEHLER keine Zeilenmarke ist, was hier ja der Fall wäre! Geht sonst genauso wie gepostet, nur mit Call FEHLER anstelle der MsgBox.
Gruß Luc :-?
Anzeige
AW: So, dann also noch das,...
24.02.2011 18:37:42
Holger,
1 Wie was, ich bin gestern eigentlich alle Threads durchgegangen, nachdem du mir den Tipp mit der Forumsliste gegeben hast. Aber ich schaue nochmal.
Zum Topic. Dann kann ich es doch so realisieren:
Sub Programm
on error goto fehler
fehler:
Call FehlerProgramm
End Sub

Sub fehlerProgramm
deine Msgbox aus dem ersten Posting
End Sub

1.Gerade dazu hast du nichts gesagt! ;-> ovT
24.02.2011 20:33:12
Luc:-?
Sonst: im Prinzip, ja!
:-?
AW: 1.Gerade dazu hast du nichts gesagt! ;-> ovT
28.02.2011 08:58:55
Holger,
Guten Morgen Luc:-?,
heute fange ich an, in meinem Projekt eine erste, kleine Errorbehandlung einzubauen.
Da habe ich Nepumuk noch eine Frage gestellt, falls du dazu etwas weißt ... ;)
Ansonsten einen schönen Wochenanfang.
Gruß
Holger
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige