Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In VBA Makro anderer Arbeitsmappe starten

In VBA Makro anderer Arbeitsmappe starten
PeterG
Einen guten Tag der Excelgemeinde,
ich stehe im Moment etwas neben mir und bitte um Hilfe. Wie kann ich per VBA-Code (dieser gehört zu einem Addin) ein Makro einer anderen offenen Excelarbeitsmappe starten?
Wenn ich dieses mit Call .. aufrufe, wird es nicht gefunden. Läuft da etwas mit Public oder Global?
Danke für jede Hilfe.
Freundliche Grüße
PeterG
Anzeige

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

Betreff
Benutzer
Anzeige
AW: In VBA Makro anderer Arbeitsmappe starten
Ulf
Siehe: Application.Run
AW: In VBA Makro anderer Arbeitsmappe starten
PeterG
Hallo Ulf,
danke, aber das hatte ich auch schon vergeblich probiert.
Die Datei heißt Kontoauskunft 2004.xls, das Makro Temp_Laden in einem Standardmodul (davon gibt es mehrere) Namens SAS2_einlesen.
Der Befehl Application.Run("Kontoauskunft 2004.xls!Temp_Laden") läuft nicht. VBA meldet, daß das Makro nicht gefunden wurde.
Kannst du einen Fehler erkennen? Das muß doch gehen!
Gruß
PeterG
Anzeige
AW: In VBA Makro anderer Arbeitsmappe starten
27.04.2004 15:55:52
PeterG
Ich hab's jetzt selbst gefunden.
Die richtige Syntax ist
Application.Run("'Kontoauskunft 2004.xls'!Temp_Laden")
Zu beachten: der Dateiname muß zusätzlich zwischen Hochkommas
(') stehen. Davon ist in der VBA-Hilfe allerdings nichts zu finden!
PeterG
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro in einer anderen Arbeitsmappe mit VBA starten


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro in einer anderen Arbeitsmappe zu starten, kannst du die Methode Application.Run verwenden. Hier sind die Schritte, um dies durchzuführen:

  1. Stelle sicher, dass die andere Arbeitsmappe, aus der du das Makro aufrufen möchtest, geöffnet ist.

  2. Verwende den folgenden VBA-Code, um das Makro aufzurufen:

    Application.Run "'Kontoauskunft 2004.xls'!Temp_Laden"

    Beachte, dass der Dateiname in einfachen Hochkommas (' ') stehen muss.

  3. Füge diesen Code in das Modul deines Add-Ins ein, um das Makro auszführen.


Häufige Fehler und Lösungen

Hier sind einige häufige Probleme, die beim Starten eines Makros in einer anderen Arbeitsmappe auftreten können, und deren Lösungen:

  • Fehlermeldung: Makro nicht gefunden
    Dies passiert häufig, wenn der Dateiname nicht korrekt angegeben ist. Stelle sicher, dass der Dateiname und der Modulname korrekt sind und in Hochkommas gesetzt sind.

  • Das Makro ist nicht öffentlich
    Wenn das Makro nicht in einem öffentlichen Modul definiert ist, kann es nicht aufgerufen werden. Stelle sicher, dass das Zielmakro als Public deklariert ist.

  • Die Arbeitsmappe ist nicht geöffnet
    Vergewissere dich, dass die Arbeitsmappe, die das Makro enthält, tatsächlich geöffnet ist. Ansonsten kann der VBA-Code das Makro nicht finden.


Alternative Methoden

Es gibt mehrere Methoden, um ein VBA Makro aus einer anderen Arbeitsmappe auszuführen:

  1. Direkter Verweis: Wenn du oft auf dieselbe Arbeitsmappe zugreifen musst, kannst du diese in deiner VBA-Umgebung als Referenz hinzufügen.

  2. Verwenden von Workbook-Objekten: Du kannst auch das Workbook-Objekt verwenden, um auf das Makro zuzugreifen:

    Dim wb As Workbook
    Set wb = Workbooks("Kontoauskunft 2004.xls")
    wb.Application.Run "Temp_Laden"
  3. VBA Call Makro: Du kannst auch die Call-Anweisung verwenden, solange das Makro öffentlich ist:

    Call wb.Temp_Laden

Praktische Beispiele

Hier sind einige Beispiele, wie du ein VBA Makro aufrufen kannst:

  • Beispiel 1: Ein Makro aus einer anderen Arbeitsmappe starten

    Sub StarteMakro()
       Application.Run "'Kontoauskunft 2004.xls'!Temp_Laden"
    End Sub
  • Beispiel 2: Mit Workbook-Objekt

    Sub StarteMakroMitWorkbook()
       Dim wb As Workbook
       Set wb = Workbooks("Kontoauskunft 2004.xls")
       wb.Application.Run "Temp_Laden"
    End Sub

Tipps für Profis

  • Nutze die On Error Resume Next-Anweisung, um Fehler zu ignorieren, die auftreten können, wenn das Makro nicht gefunden wird.
  • Dokumentiere deine Makros gut, damit andere Benutzer oder du selbst in der Zukunft wissen, was der Code macht.
  • Verwende Debug.Print, um den Status deines Codes während der Ausführung zu überwachen.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro aus einer geschlossenen Arbeitsmappe aufrufen?
Das ist nicht direkt möglich. Du musst die Arbeitsmappe zuerst öffnen, um das Makro auszuführen.

2. Was passiert, wenn das Makro in einer anderen Version von Excel erstellt wurde?
In den meisten Fällen sollte es funktionieren, solange die Funktionen im Makro in deiner Excel-Version verfügbar sind. Prüfe jedoch die Kompatibilität von spezifischen Funktionen.

3. Kann ich ein Makro aus einer geschützten Arbeitsmappe aufrufen?
Ja, aber du musst zuerst das Passwort eingeben, um die Arbeitsmappe zu entsperren.

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