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

Application.Run "'Variabel.xls'!Makroname"

Forumthread: Application.Run "'Variabel.xls'!Makroname"

Application.Run "'Variabel.xls'!Makroname"
25.03.2017 12:51:11
Winfried
Grüss Gott miteinander,
Hajo hatte mir super geholfen und das Makro zur Ansteuerung eines Makros in einer inaktiven aber geöffneten Arbeitsmappe schon prima nach vorn gebracht.
Das nachstehende Makro benötigt im letzten Schritt die gleiche Variable wie im Schritt
Windows(Range("e10") & ".xls").Activate
Sub Makro1()
Range("e10").Select
Windows(Range("e10") & ".xls").Activate
Application.Run "'701.xls'!Makro2"
End Sub

Also die Zelle e10 beinhaltet den Wert 701. Der Wert in Zelle e10 ändert sich ständig und muss somit variabel in "Application.Run "(Wert aus e10).xls'!Makro2" eingefügt werden.
Meine Versuche sind nach mehrstündigen Versuchen kläglich gescheitert.
Über eine Hilfe würde ich mich sehr freuen!
Vorab vielen Dank!
Winfried
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Application.Run "'Variabel.xls'!Makroname"
25.03.2017 12:55:02
Hajo_Zi
Hallo Winfried,
Application.Run "'" & Range("E10") &".xls'!Makro2"

AW: Application.Run "'Variabel.xls'!Makroname"
25.03.2017 14:31:52
Winfried
Vielen Dank Hajo!
Application.Run "'" & Range("E10") &".xls'!Makro2" führt zu der Fehlermeldung
Laufzeitfehler '1004':
Die Methode 'Run' für das Objekt'_Application' ist fehlgeschlagen
Lt. meiner Recherge liegt folgendes Problem vor: "Um dieses Problem zu beheben, ändern Sie den Code so, dass jeder Aufruf eines Objekts, einer Methode oder Eigenschaft in Excel durch die entsprechende Objektvariable definiert wird."
Gefunden in: https://support.microsoft.com/de-ch/help/178510/excel-automation-fails-second-time-code-runs
Versucht habe ich es schon mit der dortigen Anleitung. Leider ohne Erfolg, da ich VBA nicht beherrsche.
Was muss ich machen damit es läuft?
Vielen Dank!
Winfried
Anzeige
AW: Application.Run "'Variabel.xls'!Makroname"
26.03.2017 16:48:29
Hajo_Zi
mal raus aus offen, da anderes Forum.
Gruß Hajo
;
Anzeige

Infobox / Tutorial

Anwendung von Application.Run in VBA für Excel


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel mit der Methode Application.Run anzusteuern, während du einen variablen Dateinamen verwendest, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Schreibe das Makro:

    • Füge den folgenden Code in das Modul ein:
    Sub Makro1()
       Dim dateiname As String
       dateiname = Range("E10").Value ' Hier wird der Wert aus Zelle E10 verwendet
       Windows(dateiname & ".xls").Activate
       Application.Run "'" & dateiname & ".xls'!Makro2"
    End Sub
  4. Teste das Makro:

    • Stelle sicher, dass die Datei, die du ansteuern möchtest, geöffnet ist, und führe das Makro aus, um zu sehen, ob es funktioniert.

Häufige Fehler und Lösungen

  • Laufzeitfehler '1004':

    • Problem: Du erhältst die Fehlermeldung „Die Methode 'Run' für das Objekt '_Application' ist fehlgeschlagen“.
    • Lösung: Stelle sicher, dass die Arbeitsmappe mit dem angegebenen Namen tatsächlich geöffnet ist. Überprüfe auch, ob der Wert in Zelle E10 korrekt ist und keine unerwarteten Leerzeichen enthält.
  • Falscher Dateiname:

    • Problem: Der Dateiname aus Zelle E10 führt zu einem Fehler.
    • Lösung: Überprüfe, ob die Zelle E10 den richtigen Namen enthält. Du kannst auch den Code anpassen, um den Wert vor der Verwendung zu überprüfen.

Alternative Methoden

  1. Direktes Aufrufen von Makros:

    • Anstatt Application.Run zu verwenden, kannst du das Zielmakro direkt aufrufen, wenn es im gleichen Modul ist.
    Sub Makro1()
       Call Makro2
    End Sub
  2. Verwendung von Execute:

    • Eine weitere Möglichkeit ist die Verwendung von Execute für dynamisches Ausführen von Makros.
    Execute "'" & Range("E10").Value & ".xls'!Makro2"

Praktische Beispiele

Wenn du ein Makro aus einer anderen Arbeitsmappe ansteuern möchtest, nutze den folgenden Code:

Sub BeispielMakro()
    Dim workbookName As String
    workbookName = "701" ' Beispiel für den Arbeitsmappennamen
    Application.Run "'" & workbookName & ".xls'!Makro2"
End Sub

Stelle sicher, dass die Arbeitsmappe 701.xls geöffnet ist, bevor du das Makro ausführst.


Tipps für Profis

  • VBA-Anpassungen: Lerne, wie man Application.run mit Parametern verwendet, um Makros flexibler zu gestalten. Zum Beispiel:

    Application.Run "'701.xls'!Makro2", Parameter1, Parameter2
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben robust bleibt:

    On Error Resume Next
    Application.Run "'" & Range("E10").Value & ".xls'!Makro2"
    If Err.Number <> 0 Then
       MsgBox "Fehler beim Ausführen des Makros"
    End If
    On Error GoTo 0

FAQ: Häufige Fragen

1. Was kann ich tun, wenn mein Makro nicht funktioniert?
Überprüfe, ob die Arbeitsmappe, die du ansteuern möchtest, geöffnet ist und ob der Name in Zelle E10 korrekt ist.

2. Kann ich Parameter an das Makro übergeben?
Ja, du kannst Application.Run verwenden, um Parameter an das aufgerufene Makro zu übergeben, indem du sie an die Methode anhängst.

3. Was ist der Unterschied zwischen Application.Run und Call?
Application.Run kann verwendet werden, um Makros in anderen Arbeitsmappen auszuführen, während Call nur für Makros im gleichen Modul funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige