Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Prozedur Name einfügen

Forumthread: Prozedur Name einfügen

Prozedur Name einfügen
05.07.2025 16:54:04
Siegfried
Hallo zusammen,

ich möchte den Namen der nachfolgenden Prozedur (SubTest() ) in eine Debug.Print Anweisung einfügen.
Kann man das und wie müsste ich das anstellen?

Sub SubTest()
Dim Blattname As String
Dim dteStart As Date, dteEnde As Date
dteStart = Timer
Blattname = ActiveSheet.Name

dteEnde = Timer
Debug.Print "hier soll der Name der Prozedur stehen " & Blattname & Chr(32) & Format(dteEnde - dteStart, "0.00") & " Sekunden..."
End Sub

Gruß
Siegfried
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozedur Name einfügen
05.07.2025 17:03:04
Marc
einfach
neue Variable erzeugen



Dim subname as String

subname = "Sub Test()"


Debug.Print subname & ", " & Blattname & Chr(32) & Format(dteEnde - dteStart, "0.00")

AW: Prozedur Name einfügen
05.07.2025 17:24:15
RPP63
Moin!
Ich bin mir sehr sicher, dass "VBA bescheiden" nicht ausreicht.
Dennoch eine Arbeitsgrundlage, etwas Mundgerechtes werde ich nicht geben:
http://cpearson.com/Excel/vbe.aspx

Gruß Ralf
Anzeige
AW: Prozedur Name einfügen
05.07.2025 17:14:43
Siegfried
Hi Marc,

so einfach dann doch nicht.
Bei Deinem Vorschlag müsste ich den Text schreiben, genau das will ich mir ersparen.
Meine Vorstellung wäre analog Blattname = ActiveSheet.Name
Prozedur = ActiveProzedur.Name ?

Gruß
Siegfried
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..
Anzeige
AW: Prozedur Name einfügen
05.07.2025 21:18:20
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..

Ich habe jetzt das Beispiel Fehlermanagement hier gebracht
Aber ähnliches kannst du auch nutzen, um eben deine Wunschdaten (wie Sub, Tabellenblatt, Datum, Uhrzeit , Zelle) aus zu geben...
Anzeige
AW: Prozedur Name einfügen
05.07.2025 21:57:01
Siegfried
Hi Marc,

vielen Dank für Deine Antwort.
Deinen Vorschlag werde ich noch testen, derweil arbeite ich noch mit Ralfs Hinweis.

Gruß und Danke
Siegfried
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18