Globale Fehlerbehandlung

Hallo zusammen,

ich möchte gern eine globale Fehlerbehandlung in mein Projekt einbauen, d.h. ich will nicht in jeder einzelnen Prozedur einen ErrorHandler anbringen, sondern an einer zentralen Stelle etc.
Bei einem Fehler soll immer die Prozedur, in der der Fehler aufgetreten ist, angezeigt werden … also z.B.

„Es ist ein Fehler in der Prozedur [Name] aufgetreten …“

Hat da jemand eine Idee oder vielleicht schonmal sowas gemacht?

Moin, Tyranny,

ich möchte gern eine globale Fehlerbehandlung in mein Projekt
einbauen

das scheitert daran, dass in VBA nur das Modul bekannt ist (Application.VBE.ActiveCodePane.CodeModule), in dem der Fehler auftritt, nicht aber die Prozedur.

Gruß Ralf

Bei einem Fehler soll immer die Prozedur, in der der Fehler
aufgetreten ist, angezeigt werden … also z.B.

„Es ist ein Fehler in der Prozedur [Name] aufgetreten …“

Hat da jemand eine Idee oder vielleicht schonmal sowas
gemacht?

Hallo T,

ungetestet, aber ich sehe nichts was dagegen spricht.

Schreibe anfangs jeder Prozedur
Proz=„Name der Prozedur, Modul der prozedur“

Proz ist eine globale Variable. Am Ende jeder prozedur mußt du dann Proz wieder zurücksetzen.
Da ich es schon erlebt hatte, daß beim Codedurchgang mit F8 der Code durchlief, „End Sub“ gelb markiert war. Nun F8 und es kam der Fehler.
Deshalb vielleicht lieber am Ende jeder Prozedur
Proz=""Name der prozedur im modul x wird beendet.

Logo mußt du das dann auch bei allem „Exot Sub“ machen usw.

Gruß
Reinhard

Moin, Reinhard,

ungetestet, aber ich sehe nichts was dagegen spricht.

Schreibe anfangs jeder Prozedur
Proz=„Name der Prozedur, Modul der prozedur“

Du hast natürlich recht, ich hab das sogar mal gebaut (für Modul allerdings [siehe mein voriges Posting]). Nachdem ich dann gesehen habe, wie das ausufern kann, hab ich mir gedacht, ein paar sorgfältig gestreute Haltepunkte tun’s im Notfall auch :smile:

Gruß Ralf