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

Makro aus anderer Arbeitsmappe aufrufen

Forumthread: Makro aus anderer Arbeitsmappe aufrufen

Makro aus anderer Arbeitsmappe aufrufen
15.08.2002 15:51:37
Edgar Kälin
Hallo zusammen

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

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Makro aus anderer Arbeitsmappe aufrufen
15.08.2002 15:53:11
Otto Ecker
Hallo Edgar,

sieh dier mal Application.run an.

Gruß Otto

Re: Makro aus anderer Arbeitsmappe aufrufen
15.08.2002 16:12:05
Edgar Kälin
Danke

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

Anzeige
Re: Makro aus anderer Arbeitsmappe aufrufen
15.08.2002 18:13:59
Edgar Kälin
Habs doch noch herausgefunden. Es muss heissen:
Application.Run ("'B.xls'!test2")
;
Anzeige

Infobox / Tutorial

Makro in anderer Arbeitsmappe ausführen


Schritt-für-Schritt-Anleitung

Um ein Makro in einer anderen Arbeitsmappe auszuführen, kannst Du folgende Schritte befolgen:

  1. Ö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.

  2. 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
  3. Erstelle das Ziel-Makro in Arbeitsmappe B: In Arbeitsmappe B sollte das Makro folgendermaßen aussehen:

    Public Sub test2()
        MsgBox "OK"
    End Sub
  4. 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.


Häufige Fehler und Lösungen

  • 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.


Alternative Methoden

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.


Praktische Beispiele

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:

  1. In Arbeitsmappe A:

    Public Sub ExecuteCalculation()
        Application.Run "'B.xls'!CalculateTotal"
    End Sub
  2. 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.


Tipps für Profis

  • 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.


FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige