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

Forumthread: Makro in anderer offener Datei starten

Makro in anderer offener Datei starten
27.02.2017 18:43:04
Hauke
Guten Abend zusammen,
ich grübel mal wieder über einem Problemchen. Wahrscheinlich ist es nur eine Kleinigkeit und man sieht mal wieder den Wald vor lauter Bäumen nicht.
Folgende Ausgangslage:
Ich habe 2 Excel-Dateien geöffnet. In der einen läuft ein UserForm1 mit verschiedenen Labels. Nun habe ich eine 2te (schon offene) Datei, in der man ebenfalls ein Userform1 aufrufen kann. Nun soll man aber in dem ersten UserForm ein Button drücken, der das Userform in der 2ten Datei anspricht und einige Werte übernimmt.
Die zweite Datei heisst immer gleich. Daher habe ich aktuell nur:
AppActivate "TEST2 - Excel"
Das geht auch, aber das Makro bzw UserForm bekomme ich nicht zum laufen.
Viele Grüße,
Hauke-Christian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in anderer offener Datei starten
27.02.2017 18:47:04
Hajo_Zi
Hallo Hauke-Christian,
Du hast ein Startmakro in der anderen Datei.
Application.Run ("mappe3.xls!Start1")

AW: Makro in anderer offener Datei starten
27.02.2017 18:53:10
Hauke
Hallo Hajo,
danke für deine Rückmeldung.
Datei neu starten und Makro ansprechen klappt. Die andere Datei ist allerdings schon geöffnet. Diese soll angesprochen werden.
VG,
Hauke-Christian
Anzeige
AW: Makro in anderer offener Datei starten
27.02.2017 20:07:32
Luschi
Hallo Hauke-Christian,
Hajos Beispiel ist genau die Lösung die Du suchst:
- 'mappe3.xls' ist die bereits geöffnetet Datei (also ohne Pfadname)
- das Makro 'Start1' muß sich in einem normalen Modul befinden und nicht in einem Klassenmodul der Tabellen
  bzw. Arbeitsmappe
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Makro in anderer offener Datei starten
28.02.2017 11:48:38
Hauke
Guten Morgen Luschi,
bekomme immer die Fehlermeldung "1004": Das Makro ist nicht verfügbar oder alle Makros wurden deaktiviert.
Makros sind alle aktiviert und das Makro habe ich in ein Modul gelegt. Es soll ja auch nur das Userform aufgehen. Aber egal wie, es will einfach nicht funktionieren.
Kann es daran liegen, dass die Datei 2 in einer eigenen Instanz läuft? Kann man das Makro trotz der anderen Instanz starten und 2 Parameter übergeben?
Viele Grüße,
Hauke-Christian
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro in anderer offener Datei ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel Makro aus einer anderen Datei zu starten, folge diesen Schritten:

  1. Überprüfe, ob die zweite Datei geöffnet ist. Stelle sicher, dass die Datei, in der das Makro ausgeführt werden soll, bereits geöffnet ist.
  2. Öffne den Visual Basic for Applications (VBA) Editor. Drücke ALT + F11, um den Editor zu öffnen.
  3. Erstelle ein neues Modul in der Arbeitsmappe, die das Makro aufrufen möchte:
    • Rechtsklick auf "VBAProject (DeineDatei.xlsm)" > Einfügen > Modul.
  4. Füge den folgenden Code ein:

    Sub MakroAusAndererDateiStarten()
       Application.Run "'mappe3.xls'!Start1"
    End Sub

    Ersetze mappe3.xls durch den Namen deiner geöffneten Datei und Start1 durch den Namen des Makros, das du ausführen möchtest.

  5. Speichere deine Änderungen und schließe den VBA-Editor.
  6. Führe das Makro aus. Du kannst das Makro über die Excel-Oberfläche oder durch einen Button im UserForm ausführen.

Häufige Fehler und Lösungen

  • Fehler 1004: Das Makro ist nicht verfügbar oder alle Makros wurden deaktiviert.

    • Überprüfe, ob das Makro in einem normalen Modul ist und nicht in einem Klassenmodul oder Arbeitsmappe.
    • Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.
  • Makro funktioniert nicht in einer eigenen Instanz.

    • Wenn die zweite Datei in einer anderen Excel-Instanz geöffnet ist, kann das Makro nicht ausgeführt werden. Stelle sicher, dass beide Dateien in der gleichen Instanz geöffnet sind.

Alternative Methoden

Wenn die oben genannten Methoden nicht funktionieren, kannst du auch folgende Ansätze ausprobieren:

  • Verwendung von AppActivate, um die andere Instanz zu aktivieren:

    Sub AppActivateAndRun()
       AppActivate "TEST2 - Excel"
       Application.Run "'mappe3.xls'!Start1"
    End Sub
  • Direktes Referenzieren der Datei, wenn der Pfad bekannt ist.


Praktische Beispiele

Angenommen, du hast ein UserForm in mappe1.xls, das Daten an ein UserForm in mappe2.xls übergeben soll. Hier ist ein Beispiel, wie du das umsetzen kannst:

Sub UserFormDatenUebergeben()
    Dim ws As Worksheet
    Set ws = Workbooks("mappe2.xls").Worksheets("Datenblatt")

    ' Werte von UserForm1 in UserForm2 übergeben
    ws.Range("A1").Value = UserForm1.TextBox1.Value
    UserForm2.Show
End Sub

Tipps für Profis

  • Nutze Public in Modulen, um sicherzustellen, dass dein Makro von anderen Dateien aufgerufen werden kann.
  • Dokumentiere deine Makros gründlich, damit du später nachvollziehen kannst, was sie tun und wie sie funktionieren.
  • Teste deine Makros in einer sicheren Umgebung, um ungewollte Änderungen an wichtigen Dateien zu vermeiden.

FAQ: Häufige Fragen

1. Wie aktiviere ich Makros in Excel?
Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und wähle die entsprechende Option.

2. Kann ich Makros zwischen verschiedenen Excel-Versionen verwenden?
Ja, solange die grundlegenden VBA-Funktionen unterstützt werden. Es kann jedoch Unterschiede in der Benutzeroberfläche geben, je nach Version.

3. Was kann ich tun, wenn mein Makro nicht funktioniert?
Überprüfe die Fehlermeldung, stelle sicher, dass alle Dateien geöffnet sind und dass die Makros in den Sicherheitseinstellungen aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige