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

Modul-Name und Prozedur in ErrorHandler

Modul-Name und Prozedur in ErrorHandler
11.02.2009 21:45:00
Christian
Hallo zusammen,
in einem ErrorHandler möchte ich den Namen der Procedure und des Moduls angeben...
zB:

Sub test()
On Error GoTo ErrorHandler
MsgBox "Hello World"
ErrorHandler:
Call ErrH(Err.Number, Err.Description)  '... weitere Argumente für Modul-Name und Prozedur
End Sub
Sub ErrH(lngNb as Long, strDescription as String)
MsgBox "Err.Number: " & lngNb & Chr(10) & _
"Err.Description: " & strDescription, 16, "Error"
'...hier soll auch der Modul-Name und der Sub-Name bzw Function-Name aufgeführt werden.
Err.Clear
End Sub


Irgendwann bin ich im Archiv schon mal darüber gestolpert ...
aber wenn man danach sucht, findet man es nicht...
vielen Dank vorab für eure Hilfe.
Grüße
Christian
PS: ich arbeite selbst mit Office 2003, der Code sollte aber auch mit VBA5 (97, Mac) funktionieren.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Probieren geht über studieren...
11.02.2009 22:12:00
Ramses
Hallo
ich kenne den MAC nicht und weiss nicht wie dort die Fehlerroutine abgearbeitet werden.
Aber einfach mal probieren
Sub test()
    Dim x, y, z
    On Error GoTo errCheck
    z = x / y
    MsgBox z
    
    errorExit:
    Exit Sub
    
    errCheck:
    Call Err_H(Err.Number, Err.Description, "TEST")
    Resume errorExit
End Sub

Sub Err_H(ERN, ERD, ComeFrom)
    MsgBox ERN & vbCrLf & ERD & vbCrLf & ComeFrom
End Sub

Gruss Rainer
Anzeige
AW: Modul-Name und Prozedur in ErrorHandler
11.02.2009 22:56:00
Christian
Hallo Rainer,
vielen Dank für deinen Tipp - an den 'Resume errorExit' hab ich noch gar nicht gedacht...
Aber ich würde gerne den Namen des Moduls und der Sub/Function als variablen Parameter übergeben.
In meinem Projekt sind zig Sub's und Functions über mehrere Module verteilt.
Ich fange schon etliche Fehler, die bei meinen Testläufen aufgetreten sind im Code ab, möchte aber prinzipiell einen ErrorHandler einbauen, der auch das betroffene Modul und die Prozedure ausgibt.
Ich hab den ErrorHandler in eine eigene Sub ausgelagert, um in jeder Sub/Function nur einen Standard-Aufruf à la:
ErrorHandler:
Call ErrH(Err.Number, Err.Description)
einbauen (kopieren) zu müssen.
Hier den Namen der Sub/Function und des Moduls jeweils als String einzusetzen wäre sehr umständlich und müsste nach jeder Änderung der Namen angepasst werden.
Ich lass die Frage offen ...
Viele Grüße
Christian
Anzeige
AW: Modul-Name und Prozedur in ErrorHandler
12.02.2009 08:28:00
Nepumuk
Hallo Christian,
es gibt in VB/VBA keine Möglichkeit festzustellen von welcher Prozedur in welchem Modul eine andere Prozedur aufgerufen wurde. Am besten legst du in jeder Prozedur eine Konstante an, welche den Prozedurnamen enthält. Wir haben im Prozedurnamen auch immer den Modulnamen. Wenn also eine Prozedur im Modul basMain ist, dann fängt der Prozedurname immer mit Main an (Main_Init, Main_Execute, Main_Reset ....).
Gruß
Nepumuk
Danke
12.02.2009 09:52:00
Christian
Hallo Nepumuk,
wenn du das sagst, dass es nicht geht, dann geht es wohl wirklich nicht.
Vielen Dank für die Info.
Grüße
Christian.
Anzeige
@Nepumuk
12.02.2009 10:10:00
Ramses
Hallo Max
Kannst du dir das mal ansehen
https://www.herber.de/forum/messages/1049579.html
Vielleicht hast du eine Idee, warum wir da immer in einen Fehler laufen.
Ich habe keine Erklärung,... ausser dass MS vergessen hat, die SpecialCells auf LONG umzustellen.
Gruss Rainer
AW: @Nepumuk
12.02.2009 10:58:00
Nepumuk
Hallo Rainer,
ich hab das gerade unter 2007 getestet. Kein Fehler und die letzte benutzte Zelle wird auch korrekt ermittelt.
Gruß
Max
AW: @Nepumuk
12.02.2009 11:11:00
Ramses
Hallo Max
"...Kein Fehler und die letzte benutzte Zelle wird auch korrekt ermittelt...."
?
Hast du die Tabelle so aufgebaut wie ich im beispiel gezeigt habe ?
Beispiel: https://www.herber.de/bbs/user/59376.xlsm
Welche Built-Version hast du denn ?
Irgendwelche Servicepacks installiert ?
Ich habe das SP1 drauf, weiss aber ehrlicherweise nicht genau, was er dabei alles installiert hat, weil mittendrin im Installationsprozess, so nach ca. 30%, die Meldung kam, dass ich eine nicht Updatefähige Enterprise Version habe.
Und neu installieren kann ich nicht, weil das SP meldet, dass das SP schon installiert sei :-(
Gruss Rainer
Anzeige
AW: @Nepumuk
12.02.2009 11:38:00
Nepumuk
Hallo Rainer,
Office Professional 2007 SP 1 unter Windows VISTA Ultimate SP 1 auf Simens Amilo A mit 2 GHz AMD-Prozessor und 2 GB Arbeitsspeicher. Ist nicht gerade der schnellste, aber für mich reicht es.
Und auch in deiner Mappe 0 Problemo.
Gruß
Max
Danke an alle...
12.02.2009 11:54:00
Ramses
Hallo Max
Ich habe 2007, W Ultimate SP1 und einen Thinkpad W500 mit 4 GB
So wie es aussieht, scheint es dann wirklich am SP-1 zu liegen.
Die SpecialCells bringen bei mir immer einen Fehler 9, Index ausserhalb des Bereiches.
Gruss Rainer
@Rainer, bin zwar nicht Nepumuk
12.02.2009 10:58:00
Tino
Hallo,
die Verwendung von SpecialCells erzeugt immer einen Fehler,
habe ich auch schon oft festgestellt.
Gruß Tino
Anzeige
AW: @Rainer, bin zwar nicht Nepumuk
12.02.2009 11:02:00
Ramses
Hallo Tino
"...erzeugt immer einen Fehler.."
Glaube ich nicht. Der gleiche code läuft unter E2000/XP/2003 fehlerfrei.
Nur in der 2007 Version kommt der Fehler
Daher VERMUTE ich, dass es mit den grösseren Tabellenbereichen zu tun hat.
Gruss Rainer
AW: @Rainer, bin zwar nicht Nepumuk
12.02.2009 11:31:00
Tino
Hallo,
ich bin schon oft in die Falle getappt,
wenn ich SpecialCells verwendete und eine Fehlerbehandlung im Code eingebaut habe
und wie wild den Fehler gesucht habe.
"Glaube ich nicht. Der gleiche Code läuft unter E2000/XP/2003 fehlerfrei."
Ich dachte wir sprechen hier von xl2007? War zumindest in dem Beitrag angegeben!
Gruß Tino
Anzeige
AW: @Rainer, bin zwar nicht Nepumuk
12.02.2009 11:55:00
Ramses
Hallo tino
Ja, wir sprechen über E2007.
aber der gleiche Code läuft eben unter E2000 - E2003 Fehlerfrei
Gruss Rainer
unter xl2003 gehts bei mir auch...
12.02.2009 12:02:00
Tino
Hallo,
werde mal den Vorschlag mit dem Service Pack 1 übers Wochenende versuchen.
Gruß Tino
AW: @Nepumuk
12.02.2009 11:33:00
Case
Hallo Rainer,
habe es mal eben mit Deiner Beispieldatei getestet und erhalte auch keine Fehler und die Werte werden korrekt ausgegeben. Habe allerdings das ServicePack1 drauf, so dass ich mal vermute, dass es eventuell daran liegt?
Servus
Case

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige