Wie kann ich aus der Arbeitsmappe A.xls ein Makro oder ein Formular der Arbeitsmappe B.xls aufrufen? (B.xls ist bereits geöffnet.)
Viele Grüsse
Edgar
Wie kann ich aus der Arbeitsmappe A.xls ein Makro oder ein Formular der Arbeitsmappe B.xls aufrufen? (B.xls ist bereits geöffnet.)
Viele Grüsse
Edgar
sieh dier mal Application.run an.
Gruß Otto
aber irgendwie klappts noch nicht.
Ich rufe mit
Public Sub test()
Application.Run ("B.xls!test2")
End Sub
das Makro im Mappe B auf.
In Mappe B ist das Makro
Public Sub test2()
MsgBox "OK"
End Sub
Ich erhalte aber immer die Fehlermeldung 1004: Excel kann das Makro "..." nicht finden. Auch wenn ich anstelle des Mappennamens den ganzen Pfad eingebe, klappt es nicht.
Was mache ich falsch?
Edgar
Um ein Makro in einer anderen Arbeitsmappe auszuführen, kannst Du folgende Schritte befolgen:
Öffne beide Arbeitsmappen: Stelle sicher, dass sowohl die Arbeitsmappe A (z.B. A.xls) als auch die Arbeitsmappe B (z.B. B.xls) geöffnet sind.
Schreibe das Makro in Arbeitsmappe A: Füge den folgenden Code in ein Modul von Arbeitsmappe A ein:
Public Sub test()
Application.Run "'B.xls'!test2"
End Sub
Erstelle das Ziel-Makro in Arbeitsmappe B: In Arbeitsmappe B sollte das Makro folgendermaßen aussehen:
Public Sub test2()
MsgBox "OK"
End Sub
Führe das Makro in Arbeitsmappe A aus: Rufe das Makro test
in Arbeitsmappe A auf, um das Makro test2
in Arbeitsmappe B auszuführen.
Fehlermeldung 1004: Wenn Du die Fehlermeldung "Excel kann das Makro '...' nicht finden" erhältst, überprüfe, ob Du den Namen der Arbeitsmappe korrekt eingegeben hast. Vergiss nicht, die Arbeitsmappe in einfache Anführungszeichen zu setzen: "'B.xls'!test2"
.
Makro nicht gefunden: Stelle sicher, dass das Makro test2
in Arbeitsmappe B öffentlich deklariert ist. Es sollte als Public Sub test2()
deklariert sein.
Eine alternative Methode, um ein Makro in einer anderen Arbeitsmappe auszuführen, ist die Verwendung von Workbooks
:
Public Sub test()
Workbooks("B.xls").RunAutoMacros xlAutoOpen
End Sub
Diese Methode hat den Vorteil, dass Du nicht direkt die Application.Run
-Methode benötigst, aber sie erfordert, dass das Ziel-Makro in der AutoOpen-Methode definiert ist.
Hier ist ein praktisches Beispiel, das zeigt, wie Du ein Makro in einer anderen Arbeitsmappe ausführen kannst. Nehmen wir an, Du möchtest in Arbeitsmappe B eine Berechnung durchführen:
In Arbeitsmappe A:
Public Sub ExecuteCalculation()
Application.Run "'B.xls'!CalculateTotal"
End Sub
In Arbeitsmappe B:
Public Sub CalculateTotal()
' Beispiel-Berechnung
Dim total As Double
total = Application.Sum(Range("A1:A10"))
MsgBox "Die Summe ist: " & total
End Sub
Wenn Du das Makro ExecuteCalculation
in Arbeitsmappe A ausführst, wird das Makro CalculateTotal
in Arbeitsmappe B aufgerufen.
Verwende Option Explicit
: Setze am Anfang Deiner Module Option Explicit
, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
Makros in Modulen organisieren: Halte Deine Makros in separaten Modulen organisiert, um die Übersichtlichkeit zu erhöhen und die Wartung zu erleichtern.
Debugging: Nutze die Debugging-Tools von VBA, um sicherzustellen, dass alles reibungslos funktioniert, wenn Du ein Makro in einer anderen Arbeitsmappe ausführen möchtest.
1. Kann ich ein Makro in einer geschützten Arbeitsmappe ausführen?
Nein, Du musst die Arbeitsmappe entsperren, um Makros ausführen zu können.
2. Was muss ich tun, wenn das Makro in der anderen Arbeitsmappe nicht gefunden wird?
Stelle sicher, dass die Arbeitsmappe B geöffnet ist und der Name des Makros korrekt eingegeben wurde. Überprüfe auch die Schreibweise und ob die Arbeitsmappe den richtigen Namen hat.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen