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

Forumthread: Makro per Makro starten

Makro per Makro starten
29.06.2006 11:34:58
{mskro}
Hallo und Mahlzeit,
ich habe folgendes Problem und hoffe ihr könnt mir wieder mal helfen.
Kann mir bitte mal jemand sagen, warum ich mit dem Befehl Application.Run ("Makro1_Name_Heute") nicht das Makro in der per Makro geöffneten anderen Datei starten kann? Ich bekomme die Fehlermeldung:
Laufzeitfehler '1004':
Microsoft Excel kann das Makro 'Makro1_Name_Heute' nicht finden, obwohl es in der Datei vorhanden ist.
Hier in verkürzter Form das VBA

Sub AlleStarten()
Workbooks.Open Filename:=("D:\Verzeichnis\Dateiname1.xls")
Application.Run ("Makro1_Name_Heute")
ActiveWorkbook.Close
Workbooks.Open Filename:=("D:\Verzeichnis\Dateiname2.xls")
Application.Run ("Makro2_Name")
ActiveWorkbook.Close
'u.s.w.
End Sub

Was mache ich falsch?
Gruss Manfred
Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro per Makro starten
29.06.2006 11:36:53
Dr.
Statt Application.Run versuchs mal mit Call Makro1_....
AW: Makro per Makro starten
29.06.2006 11:40:20
{mskro}
Hallo Dr.,
bekomme nun die Fehlermeldung:
Fehler beim Kompilieren
Sub oder Function nicht definiert
Klappt also auch nicht.
Gruss Manfred
AW: Makro per Makro starten
29.06.2006 11:41:39
Dr.
Wo steht das Makro genau?
Anzeige
AW: Makro per Makro starten
29.06.2006 11:43:46
{mskro}
sie stehen jeweils im Modul1, bzw. Modul1 - Modul5 bei den zu startenden.
Gruss Manfred
AW: Makro per Makro starten
29.06.2006 11:48:04
{mskro}
vergessen die Frage offen zu halten o.T.
AW: Makro per Makro starten
29.06.2006 11:54:37
Dr.
Dann kann es sich nur um einen Tippfehler im Makronamen handeln.
Anzeige
AW: Makro per Makro starten
29.06.2006 11:57:11
{mskro}
hunderte mal kontrolliert (Buchstabe für Buchstabe) und Schreibfehler ausgeschlossen.
ich bin am verzweifeln.
AW: Makro per Makro starten
29.06.2006 11:59:10
Dr.
Dann hilft nur noch, die Mappe hier hochzuladen.
AW: Makro per Makro starten
29.06.2006 12:09:37
{mskro}
...zum Hochladen stehen zu viele Firmenbezogene Informationen drin.
Gibt es keinen anderen Weg?
Anzeige
AW: Makro per Makro starten
29.06.2006 12:09:40
Beate
Hallo,
probiere es so:

Sub allestarten()
Workbooks.Open Filename:=("D:\Verzeichnis\Dateiname2.xls")
Application.Run "Dateiname2.xls!Makro2_Name"
End Sub

Gruß,
Beate
AW: Makro per Makro starten
29.06.2006 12:15:03
{mskro}
Hallo Beate,
leider führt auch deine Version zur gleichen Fehlermeldung, das Excel das Makro nicht finden kann.
Ich dreh hier gleich am Rad. ;o)
Freundlichen Gruß
Manfred
Anzeige
AW: Makro per Makro starten
29.06.2006 12:28:59
Heiko
Hallo Manfred,
testest du wirklich mit diesen Namen (D:\Verzeichnis\Dateiname2.xls) oder hast du in Wirklichkeit Datei und Ordner Namen mit Leerzeichen im Namen ?!
Gruß Heiko
AW: Makro per Makro starten
29.06.2006 12:37:41
{mskro}
Hallo Heiko,
das Original heisst schon anders und die Makros haben teilweise Namen mit Unterstrichen im Text (keine Leerzeichen).
Ich denke mir fast, das Excel damit Probleme hat. Ich darf gar nicht daran denken, wenn es wirklich an den Unterstrichen liegt.
Gruss Manfred
Anzeige
AW: Makro per Makro starten
29.06.2006 12:41:49
Heiko
Hallo Manfred,
setzt den Dateinamen mal testweise in Hochkommas, bei läuft das so auch bei Unterstrichen und Leerzeichen.

Sub AlleStarten()
Workbooks.Open Filename:=("C:\Copy\Mappe_1.xls")
Application.Run "'Mappe_1.xls'!Makro1_Name_Heute"
ActiveWorkbook.Close
Workbooks.Open Filename:=("C:\Copy\Mappe_2.xls")
Application.Run "'Mappe_2.xls'!Makro2_Name"
ActiveWorkbook.Close
'u.s.w.
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
Das wars Heiko, ich glaube es ja nicht! Danke
29.06.2006 12:46:39
{mskro}
Hallo Heiko,
auf diese Idee wäre ich ja nie gekommen.
Super vielen Dank, das hat mir unendlich Arbeit erspart.
Freundlichen Gruß
Manfred
AW: Makro per Makro starten
30.06.2006 10:11:20
{mskro}
Guten Morgen,
ich muß hier doch nochmals nachhaken. Kann es sein, das ein Makro, das so aufgerufen wurde, nach Ablauf dazu führt, das das StartMakro nicht mehr weiter abgearbeitet wird?
Woran kann es liegen, oder was kann der Fehler sein?
Gruss Manfred
Anzeige
AW: Makro per Makro starten
30.06.2006 14:13:13
Heiko
Hallo Manfred,
normalerweise sollte das nicht so sein. Also normal wäre aus Hauptprogramm Unterprogramm aufrufen - Unterprogramm abarbeiten - zurück ins Hauptprogramm - nächtes Unterprogramm aufrufen ...
Aber was ist schon normal.
Ein Grund wäre das du irgendwo in dem Unterprogramm den Befehl End hast (also ohne End Sub), denn End allein beendet sofort das gesammte VBA Programm.
Ein weiterer Grund könnte sein das du aus versehen die Mappe schließt aus der das Hauptprogramm gestartet wurde. Aber wenn das so wäre wäre halt auch die Mappe dazu nicht mehr offen und das würde man ja merken.
Weitere Tipps hab ich dann ohne den Code zu kennen auch nicht mehr.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Makro per Makro starten
30.06.2006 22:32:32
{mskro}
Hallo Heiko,
nein, ich habe kein End Sub oder sonst welche Möglichkeiten eines Ausstiegs im Makro enthalten. Auch die Datei mit dem Hauptmakro wird nicht geschlossen. Ich glaube, ich werde mir das ganze in Ruhe nochmals in Einzelschritten ansehen, aber das dauert recht lange, denn das komplette Makro läuft ca: 10 Minuten.
Es gibt eben immer wieder Dinge bei Microsoft, die lassen sich nicht logisch erklären. Ich lasse den Thread trotzdem mal auf, vielleicht hat jemand ja noch einen heißen Tip.
Danke nochmals für die Hilfe.
Gruss Manfred
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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 per Makro starten in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro aus einem anderen Makro heraus zu starten, kannst du die folgenden Schritte befolgen:

  1. Öffne die gewünschte Arbeitsmappe:
    Verwende den Befehl Workbooks.Open, um die Datei zu öffnen, in der sich das Makro befindet.

    Workbooks.Open Filename:="D:\Verzeichnis\Dateiname1.xls"
  2. Rufe das Makro auf:
    Nutze Application.Run, um das Makro in der geöffneten Datei auszuführen. Achte darauf, den korrekten Namen des Makros sowie den Dateinamen anzugeben.

    Application.Run "'Dateiname1.xls'!Makro1_Name_Heute"
  3. Schließe die Arbeitsmappe:
    Nachdem das Makro ausgeführt wurde, kannst du die Arbeitsmappe schließen.

    ActiveWorkbook.Close
  4. Wiederhole den Vorgang:
    Öffne die nächste Datei und führe das nächste Makro aus, indem du die Schritte 1 bis 3 wiederholst.


Häufige Fehler und Lösungen

  • Laufzeitfehler '1004':
    Dieser Fehler tritt auf, wenn das Makro nicht gefunden werden kann. Überprüfe den Namen des Makros auf Tippfehler und stelle sicher, dass das Makro im richtigen Modul vorhanden ist.

  • Fehler beim Kompilieren:
    Wenn du den Befehl Call verwendest und die Fehlermeldung "Sub oder Function nicht definiert" erhältst, könnte das Makro nicht im richtigen Modul sein oder einen anderen Namen haben.

  • Dateinamen mit Leerzeichen oder Unterstrichen:
    Stelle sicher, dass du den Dateinamen in Hochkommas setzt, wenn er Leerzeichen oder Unterstriche enthält.


Alternative Methoden

Eine alternative Methode besteht darin, das Makro direkt über den Namen anzusprechen, ohne Application.Run zu verwenden:

Call Makro1_Name_Heute

Achte darauf, dass das Makro, das du aufrufst, im gleichen Modul oder in einem erreichbaren Modul definiert ist.


Praktische Beispiele

Hier ein Beispiel, wie du mehrere Makros in einer Schleife ausführen kannst:

Sub AlleStarten()
    Dim wb As Workbook
    Dim dateien As Variant
    Dim i As Integer

    dateien = Array("D:\Verzeichnis\Dateiname1.xls", "D:\Verzeichnis\Dateiname2.xls")

    For i = LBound(dateien) To UBound(dateien)
        Set wb = Workbooks.Open(Filename:=dateien(i))
        Application.Run "'" & wb.Name & "'!Makro" & (i + 1) & "_Name"
        wb.Close SaveChanges:=False
    Next i
End Sub

Tipps für Profis

  • Verwende Error-Handling:
    Füge Error-Handling in dein Makro ein, um unerwartete Fehler abzufangen:

    On Error Resume Next
  • Modularisiere deinen Code:
    Halte deinen Code sauber und modular, indem du verwandte Funktionen in separaten Modulen oder Klassen speicherst.

  • Dokumentiere deinen Code:
    Kommentiere deinen Code, um die Verständlichkeit für andere (und zukünftige Du selbst) zu erhöhen.


FAQ: Häufige Fragen

1. Was mache ich, wenn das Makro nicht gefunden wird?
Überprüfe den Namen des Makros sowie die Schreibweise. Stelle sicher, dass das Makro im entsprechenden Modul vorhanden ist.

2. Kann ich ein Makro in einem anderen Workbook ausführen?
Ja, du kannst ein Makro in einem anderen Workbook ausführen, indem du den vollständigen Namen mit Dateipfad angibst.

3. Was ist der Unterschied zwischen Call und Application.Run?
Call wird verwendet, um ein Makro direkt aufzurufen, während Application.Run es ermöglicht, ein Makro aus einer anderen Datei oder einem anderen Modul auszuführen.

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