Ich möchte gerne herausfinden, ob ein bestimmtes Modul direkt oder durch ein anderes Modul aufgerufen wurde. Sofern ein Modul über einen Command-Button aufgerufen wurde, kann ich das am "Application.Caller" erkennen. Das können aber auch alle Unterfunktionen abfragen, ist also keine große Hilfe. Nur eines dürfte sicher sein: das Modul wurde niicht über "Makro ausführen" gestartet worden sein.
Wenn ich ein Modul über "Makro ausführen" starte, erhalte ich bei Application.Caller einen "Fehler 2023".
Das bringt mich nicht weiter. Ich habe schon an eine globale Variable gedacht, in welcher der Name des zuerst aufgerufenen Moduls hinterlegt wird. Problem dabei: wer löscht diese Variable, damit erkannt werden kann, wer der Erste ist/war? Zwar könnte der "Erste" seinen Eintrag wieder entfernen, wenn er die Kontrolle zurück erhält. Bei einem Abbruch unterwegs .... bleibt der Eintrag vorhanden..
Abhängig davon, ob ein Modul der aktuelle Start der Verarbeitung ist, oder nicht, sind ggf. unterschiedliche Vorbereitungen im entsprechenden Modul erforderlich. (Ausführung einer lauffähigen Unterfunktion!)
Gibt da dafür einen Lösung, und wie könnte die aussehen?
Mir ist bekannt, dass es in Excel keine Möglichkeit gibt, den eigenen Sub- bzw. Function-Namen zu ermitteln.
Gruß
W H21