Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Name aktive Sub

Name aktive Sub
04.05.2005 17:33:44
Ingo
Tag Allerseits,
für eine LogDatei möchte ich auftretende Fehler protokollieren und
den Namen der aufrufenden

Sub festhalten. Ich finde allerdings keine passende
Antwort auf die Frage, wie ich den Namen der gerade aufgerufenen 

Sub () ermitteln kann.
Als "Bastelansatz" habe ich
Public Prozedurname As String deklariert.
In der 

Sub steht.....

Sub AufrufTaschenrechner()
On Error GoTo Errorhandler
Call Shell("Calc1.exe", 1)  ( Calc1 gibts' natürlich nicht- Fehler 53)
Exit Sub
Errorhandler:
Prozedurname = "AufrufTaschenrechner" 'Hiermit habe ich meinen Sub-Namen
ErrNumberProtokollieren ' ist die Funktion
End Sub


Function ErrNumberProtokollieren()
' Auf Fehler überprüfen
If Err.Number <> 0 Then
Cells(1, 1).Value = "Fehler # " & Str(Err.Number) 'Fehlernummer
Cells(1, 2).Value = Err.Description ' Klartext der Fehlernummer
Cells(2, 1).Value = "Sub"
Cells(2, 2).Value = Prozedurname ' Der 

Sub Name
Cells(3, 1).Value = "User"
Cells(3, 2).Value = Environ("username")
End If
End Function

Klappt einwandfrei. Erscheint mir aber irgendwie zu umständlich....
Habe ich u.U. doch eine einfachere Lösung in der Recherche übersehen ?
Gruß, Ingo

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name aktive Sub
04.05.2005 17:45:04
Nepumuk
Hallo Ingo,
anders geht es nicht. Ich würde aber an deiner Stelle keine öffentliche Variable benutzen, sondern der Prozedurnamen im Call - Aufruf übergeben.
Call ErrNumberProtokollieren("AufrufTaschenrechner")
Public

Sub ErrNumberProtokollieren(Prozedurname As String)
End Sub

Das Protokollieren machst du besser in einer

Sub - Prozedur, da du ja keinen Rückgabewert erwartest.
Gruß
Nepumuk

AW: Name aktive Sub
04.05.2005 17:45:46
Christoph
Hallo Ingo,
als Alternative würde mir nur einfallen per Code in's VB-Project einzugreifen und das ist mit Sicherheit aufwendiger...vielleicht gibts ja wirklich noch 'ne simple Lösung, ich kenn bei weitem nicht alles.
Du könntest dir allerdings die Public-Variable sparen, in dem du den Prozedurnamen im Aufruf der "ErrNumberProtokollieren" übergibst.
Des Weiteren sollte die "ErrNumberProtokollieren" eine Sub sein und keine Function. Hier wird ja nichts zuückgegeben.
Gruß
Christoph
Anzeige
AW: Name aktive Sub
04.05.2005 17:54:27
Nepumuk
Hi Ingo,
es geht grundsätzlich nicht. Du kannst noch nicht einmal feststellen, aus welchem Modul der Aufruf kommt. Geschweige denn von welchem Makro. Es gibt im VBProject weder ActiveModul noch ActiveMakro oder CallingMakro.
Gruß
Nepumuk
AW: Name aktive Sub
04.05.2005 18:05:15
Ingo
Hallo ihr beiden,
Danke für die Antworten.
Dann lag ich ja grundsätzlich richtig ;-)
Allerdings...Function ist natürlich Quatsch - Ich bin eigentlich dabei die
Rechtevergabe einzurichten und deswegen ein wenig im Functionswahn ;-)
Gruß, Ingo
(und sonnigen Vatertag...)
@Nepumuk
04.05.2005 18:08:42
Christoph
Hallo Nepumuk,
merci für die Info - das war auch nur eine waage Vermutung, dass sich dies vielleicht umsetzen ließe. Aber selbst wenn es diese Attribute gäbe, wäre der Aufwand nicht zu rechtfertigen (Verweise müssten gesetzt werden, per Code in den Code eingreifen, etc...)
Gruß
Christoph
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige