Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro aus einer anderen Datei starten

Forumthread: Makro aus einer anderen Datei starten

Makro aus einer anderen Datei starten
06.10.2014 01:36:45
Falo
Hallo zusammen, kann mir einer bei meinem Problem helfen.
ich lese den pfad der Datei aus, der Tab. System A5 aus. Und möchte das Macro(Berechnen)ausführen, kann mir einer einen Tipp geben.
Mit freundlichen Grüßen aus dem Sauerland.
Olaf
Private Sub DateiÖffnenP1_Click()
Dim Pfad As String
Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
Workbooks.Open Filename:=Pfad
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro aus einer anderen Datei starten
06.10.2014 06:06:34
Luschi
Hallo Olaf,
in der Excel 2003-Vba-Hilfe gibt es für den Fall folgendes Beispiel:
mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
MsgBox "Macro result: " & mySum
wobei '1' & '5' Übergabeparameter an die Funktion 'My_Func_Sum' der geöffneten Datei 'MYCUSTOM.XLM' sind.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Makro aus einer anderen Datei starten
06.10.2014 13:36:21
Falo
Hallo Luschi,
ich bekomme eine Fehlermeldung 1004 siehe unten
Private Sub DateiÖffnenP1_Click()
Dim Pfad As String
Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
Workbooks.Open Filename:=Pfad
Application.Run "Pfad!Berechnen(""Das ist ein Test"")"  ' hier bekomme ich eine  _
Fehlermeldung 1004 das er die Datei Pfad.xls nicht kennt das ist doch eine Variabel die Datei wird vorher durch
Workbooks.Open Filename auch geöffnet also ist die Variable auch richtig  was kann das sein das  _
er die Variabel nicht auslesen kann
End Sub

Mit freundlichen Grüßen aus dem Sauerland
Olaf

Anzeige
AW: Makro aus einer anderen Datei starten
06.10.2014 14:04:47
Luschi
Hallo Olaf,
versuch es mal so:

Dim wbActive As Workbook
Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
Set wbActive = Workbooks.Open(Filename:=Pfad)
Application.Run wbActive.Name & "!Berechnen", "Das ist ein Test"

- Pfad enthält Laufwerk/Verzeichnis/Dateiname
- Application.Run erwartet nur den Namen der gerade geöffneten Arbeitsmappe ohne LW/Pfad
Gruß von Luschi
aus dem sonnigen Klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro aus einer anderen Datei starten


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei, in der Du das Makro ausführen möchtest.

  2. Lese den Pfad der Ziel-Datei aus einer Zelle aus. In diesem Beispiel ist es Zelle A5 im Tab "System".

  3. Öffne die Ziel-Datei mit dem folgenden VBA-Code:

    Private Sub DateiÖffnenP1_Click()
       Dim Pfad As String
       Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
       Workbooks.Open Filename:=Pfad
    End Sub
  4. Führe das Makro aus der geöffneten Datei aus. Hierbei ist wichtig, dass Du nur den Namen der Datei ohne Pfadangabe verwendest:

    Application.Run wbActive.Name & "!Berechnen", "Das ist ein Test"

Häufige Fehler und Lösungen

Fehler 1004: Wenn Du beim Ausführen des Makros die Fehlermeldung 1004 erhältst, könnte es daran liegen, dass Du den vollständigen Pfad anstelle nur des Dateinamens verwendest. Stelle sicher, dass Du den Namen der Arbeitsmappe korrekt übergibst. Die korrekte Vorgehensweise ist:

Application.Run wbActive.Name & "!Berechnen", "Das ist ein Test"

Alternative Methoden

Eine alternative Methode ist die Verwendung von Excel VBA-Funktionen, um Makros aus einer anderen Datei zu starten. Ein Beispiel für diese Vorgehensweise könnte so aussehen:

mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
MsgBox "Macro result: " & mySum

Hierbei wird eine Funktion aus einer anderen Datei aufgerufen, was Dir ermöglicht, spezifische Berechnungen oder Prozesse auszuführen.


Praktische Beispiele

Wenn Du ein Makro aus einer anderen Datei starten möchtest, kannst Du folgende Struktur verwenden:

Private Sub DateiÖffnenP1_Click()
    Dim Pfad As String
    Dim wbActive As Workbook
    Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
    Set wbActive = Workbooks.Open(Filename:=Pfad)
    Application.Run wbActive.Name & "!Berechnen", "Das ist ein Test"
End Sub

Hierbei wird der Pfad direkt aus der Zelle gelesen, die Datei geöffnet und das Makro Berechnen aus der geöffneten Datei ausgeführt.


Tipps für Profis

  • Verwende Fehlerbehandlung: Integriere On Error Resume Next und On Error GoTo 0, um Fehler während der Ausführung zu handhaben.
  • Optimierung der Performance: Vermeide unnötige Bildschirmaktualisierungen während der Makroausführung mit Application.ScreenUpdating = False.
  • Dokumentiere Deinen Code: Kommentare erleichtern das Verständnis und die Wartung Deines Codes.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro aus einer geschlossenen Datei ausführen?
Das ist nicht direkt möglich. Du musst die Datei zuerst öffnen, bevor Du das Makro ausführen kannst.

2. Was kann ich tun, wenn ich den Dateinamen nicht kenne?
Du kannst den Benutzer auffordern, die Datei auszuwählen, indem Du einen Dateiauswahldialog verwendest. Hier ein Beispiel:

Pfad = Application.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx), *.xls; *.xlsx")

Mit diesen Anleitungen kannst Du erfolgreich ein Makro aus einer anderen Datei starten und häufige Fehler vermeiden.

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