AW: Prozedur Name einfügen
05.07.2025 21:16:43
Marc
Viel anderes wird dir nicht übrig bleiben da:
In VBA gibt es keinen direkten eingebauten Befehl, um den Namen der aktuellen Prozedur zur Laufzeit zu ermitteln (wie etwa __FUNCTION__ in C).
Du kannst als Variante noch einen geplanten Fehler auslösen , diesen dann abfangen..
mit Tools wie MZ-Tools
könnte dann mit Err.Soruce die Sub ausgegeben werden, die den Fehler aus gibt..
Das ist aber umständlich.
Daher tatsächlich die einfachste Variante,
am Anfang einer Sub
Standard Variablen zu implementieren, die eben z.B. den Sub Namen beinhalten.
Grundsätzlich empfehle ich immer: auch zur standardisierten Fehlerroutine
ein Grundgerüst einer Sub zu haben
diese beinhalten dann ein aktivieren der Sub, Standard Variablen
(z.B. Sub Name, Modul Name, Datum, Uhrzeit, vielleicht noch eine Variable die im Verlauf der eigentlich Prozedur anzeigt, bis zu welcher STelle er im Programm vorgerückt ist
und eine Standard Fehler Behandlung mit On Error Goto,
mit der dann die oben genannten Variablen ausgegeben werden:
Public Sub Test()
ThisWorkbook.Activate
'Standard Var
Dim Modul as String, SubName as String, FehlerPunkt as String
Dim Datum as date, uhrzeit as date
Modul = "BeispielModul"
SubName = "Test()"
Datum = format(now,"DD.MM.YYYY")
uhrzeit = format(now, "hh:mm:ss")
'spezifische Var
On Error Goto Fehler:
FehlerPunkt = "Start Prozedure"
'ProgrammCode
FehlerPunkt = "Punkt2"
'ProgrammCode
FehlerPunkt = "Punkt3"
'ProgrammCode
FehlerPunkt = "Punkt4"
'ProgrammCode
'.
'.
'.
On Error Goto 0
End Sub
Fehler:
MsgBox "Folgender Fehler wurde gefunden: " & Err.Description & " in Prozedure " & Subname & " in Abschnitt: " & FehlerPunkt, vbokOnly
resume Next
Exit Sub
ein gutes Fehlermanagement ist das A und O in der Programmierung.. Je genauer ich Fehler dokumentiere , desto schneller finde ich sie. Desto weniger Exceptions gibt es am Ende..