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

Makro aus anderer Datei aufrufen

Forumthread: Makro aus anderer Datei aufrufen

Makro aus anderer Datei aufrufen
25.08.2003 16:01:42
Chris
Hallo,
ich befinde mich in Mappe1 und möchte ein Makro, welches sich in Mappe 2 befindet aufrufen. Nach einigen Tips habe ich folgendes Coding:
datei2 = application.dialogs(xldialogopen)
if datei2 = false then exit sub
datei2 = activeworkbook.name
application.run(datei & "!makro2")
Leider führt Excel das Makro2 jedoch nicht aus. Wer kann mir sagen, warum?
Grüße
Chris
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro aus anderer Datei aufrufen
25.08.2003 17:33:39
ChrisL
Hi Chris
Genau darum sollte man die Variablen immer deklarieren und mit Option Explicit beginnen ;-)
Option Explicit

Private Sub CommandButton1_Click()
Dim Datei2 As Variant
Datei2 = Application.Dialogs(xlDialogOpen).Show
If Datei2 = False Then Exit Sub
Datei2 = ActiveWorkbook.Name
Application.Run (Datei2 & "!makro2")
End Sub

Gruss
Chris

Anzeige
AW: Makro aus anderer Datei aufrufen
26.08.2003 10:14:24
Chris
Hallo,
trotz Definition aller Variablen kommt die Fehlermeldung 1004: Kann Makro nicht finden...
Wer kann mir helfen?
Grüße
Chris

AW: Makro aus anderer Datei aufrufen
26.08.2003 12:26:42
ChrisL
Hi Chris
Gern geschehen.
Der angegebene Code ist getestet und funktioniert. Vielleicht hast du dein Makro nicht im Standardmodul oder die Datei ist nicht geöffnet.
Gruss
Chris

Anzeige
;
Anzeige

Infobox / Tutorial

Makro aus einer anderen Excel-Datei aufrufen


Schritt-für-Schritt-Anleitung

Um ein Makro aus einer anderen Excel-Datei aufzurufen, kannst du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei, in der du das Makro aufrufen möchtest (z. B. Mappe1).

  2. Füge den folgenden VBA-Code in ein Modul oder ein Benutzerformular ein:

    Option Explicit
    
    Private Sub CommandButton1_Click()
       Dim Datei2 As Variant
       Datei2 = Application.Dialogs(xlDialogOpen).Show
       If Datei2 = False Then Exit Sub
       Datei2 = ActiveWorkbook.Name
       Application.Run (Datei2 & "!makro2")
    End Sub
  3. Stelle sicher, dass die Datei mit dem Makro (z. B. Mappe2) geöffnet ist, bevor du den Code ausführst.

  4. Klicke auf den Button, um das Makro aus der anderen Datei aufzurufen.


Häufige Fehler und Lösungen

Einige häufige Fehler, die beim Aufrufen eines Makros aus einer anderen Datei auftreten können, sind:

  • Fehlermeldung 1004: "Kann Makro nicht finden". Dies kann auftreten, wenn:

    • Das Makro nicht im Standardmodul der Datei gespeichert ist.
    • Die Datei mit dem Makro nicht geöffnet ist.

    Lösung: Stelle sicher, dass das Makro in einem Standardmodul gespeichert ist und die Datei geöffnet ist, bevor du den Code ausführst.


Alternative Methoden

Wenn du Schwierigkeiten mit der oben genannten Methode hast, gibt es alternative Möglichkeiten, um ein Makro aus einer anderen Excel-Datei aufzurufen:

  • Direktes Referenzieren: Wenn die Datei, die das Makro enthält, immer geöffnet ist, kannst du das Makro direkt referenzieren, ohne einen Dialog zu öffnen. Beispiel:

    Application.Run "Mappe2!makro2"
  • Verwendung von Workbook.Open: Du kannst die Datei auch programmgesteuert öffnen und danach das Makro aufrufen:

    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Pfad\zu\deiner\Mappe2.xlsm")
    Application.Run "Mappe2!makro2"
    wb.Close SaveChanges:=False

Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die Funktionsweise zu verstehen:

  1. Beispiel 1: Aufrufen eines Makros, wenn das aktuelle Arbeitsblatt einen bestimmten Wert enthält:

    If Worksheets("Tabelle1").Range("A1").Value = "Start" Then
       Application.Run "Mappe2!makro2"
    End If
  2. Beispiel 2: Aufrufen eines Makros mit einer Bedingung für den Dateipfad:

    Dim dateipfad As String
    dateipfad = "C:\Pfad\zu\deiner\Mappe2.xlsm"
    If Dir(dateipfad) <> "" Then
       Application.Run "'" & dateipfad & "'!makro2"
    Else
       MsgBox "Datei nicht gefunden."
    End If

Tipps für Profis

  • Option Explicit: Beginne immer mit Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen Makros, um unerwartete Probleme zu vermeiden:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Dokumentation: Kommentiere deinen Code gut, damit du und andere ihn später leichter verstehen können.


FAQ: Häufige Fragen

1. Was mache ich, wenn das Makro nicht gefunden wird?
Überprüfe, ob die Datei mit dem Makro geöffnet ist und ob das Makro im richtigen Modul gespeichert ist.

2. Kann ich Makros aus einer geschützten Datei aufrufen?
Ja, aber du musst die Datei zuerst entsperren und öffnen, um das Makro auszuführen.

3. Was ist der Unterschied zwischen einem Standardmodul und einem Klassenmodul?
Ein Standardmodul ist der Ort, wo globale Variablen und Prozeduren gespeichert werden, während Klassenmodule spezifische Objekte und deren Verhalten definieren.

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