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

Makroaufruf in anderem Workbook mit Parameterübergabe

Forumthread: Makroaufruf in anderem Workbook mit Parameterübergabe

Makroaufruf in anderem Workbook mit Parameterübergabe
03.02.2026 12:17:12
UweO
Liebes Forum

Ich möchte zur einfacheren Pflege Makros ein einem Workbook zusammenfassen. Dieses Workbook heißt beispielshalber "Codes.xlsm".
Dort enthalten sind 2 Makros (ohne und mit Parameter):



Sub Test()
Debug.Print "Test gestartet, ohne Parameter"
End Sub

Sub TestPM(str_txt As String)
Debug.Print "TestPM gestartet, übergebener String: " & str_txt
End Sub


Wenn ich aus einem anderen Workbook heraus das erste Sub mit
  Application.Run ("Codes.xlsm!Test") 

aufrufe, wird es ausgeführt.

Anders beim Versuch des Aufrufes mit Parameterübergabe,
   Application.Run ("Codes.xlsm!TestPM", "TestID") 


ergibt aus einem Makro heraus aufgerufen entweder die Fehlermeldung "Erwartet:=" oder "Laufzeitfehler 1004 ... möglicherweise Arbeitsmappe nicht verfügbar ober Makros deaktiviert"

Dieselben Aufrufe im Direktfenster eingegeben, erhalte ich:
  

?Application.Run ("Codes.xlsm!Test")
Test gestartet, ohne Parameter
?Application.Run("Codes.xlsm!TestPM", "TestID")
TestPM gestartet, übergebener String: TestID


Die Makros werden also aus dem Direktfenster heraus aufgerufen und wie erwartet abgearbeitet, im Programmcode eines Makros aber nur, wenn keine Parameter mit übergeben werden.
Kennt jemand das Problem - und viel besser auch eine Lösung?

Link zur aufrufenden Datei (es geht leider nur eine hochzuladen): https://www.herber.de/bbs/user/180148.xlsm

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroaufruf in anderem Workbook mit Parameterübergabe
03.02.2026 13:27:27
daniel
Hi
probiere es mal ohne die Klammern.

Application.Run "Codes.xlsm!TestPM", "TestID"


und natürlich kannst du mehrere Dateien hochladen.
nachdem du die erste Datei hochgeladen und den Link in den Beitrag kopiert hast, wiederholst du das mit der zweiten Datei
Gruß Daniel
Anzeige
AW: Makroaufruf in anderem Workbook mit Parameterübergabe
04.02.2026 00:17:40
UweO
Hallo Daniel,
vielen Dank für deinen Tip, es hat sofort funktioniert!
Das habe ich der Dokumentation unter "learn.microsoft.com" so gar nicht entnehmen können.
Dort steht: Ausdruck. Run (Macro, Arg1, Arg2, ..., Arg30)

Und wenn ich jetzt eine Function aufrufe, dann geht es mit


str_SQL = Application.Run("Codes.xlsm!TestFct", str_Parameter)

Dort geht es wiederum nicht ohne Klammer! Das verwirrt mich...
Hast du das ausprobiert? Kann / muß man das wissen, oder kennst du eine Stelle zum Nachlesen?

Viele Grüße, Uwe
Anzeige
AW: Makroaufruf in anderem Workbook mit Parameterübergabe
04.02.2026 14:53:30
schauan
... mit Klammern ist das wie eine Funktion.
Du willst ein Ergebnis haben und es z.B. einer Variable im laufenden Makro zuweisen und damit weiter arbeiten.
Ohne Klammern wird das Makro einfach nur ausgeführt und gibt Dir nix zurück. Falls Du da doch was brauchst, dann z.B. über globale Variable oder wie auch immer.

Was zutrifft sieht man dann auch am aufgerufenen Makro, das könnte z.B. so aussehen

Dim c as Integer


Sub Test
erg=Berechne_F(1, 2)
MsgBox erg
Berechne_S 1, 2
MsgBox c
End Sub

Function Berechne_F(a as integer, b as integer) as integer
Berechne_F = a*b
End Funtion

'oder

Sub Berechne_S(a as integer, b as integer)
c=a*b
End Sub



Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige