Datei die Makro enthält per Makro öffnen

Hallo zusammen,

ich bin grad etwas verzweifelt.
Ich habe 3 Dateien: Test.xls; schlüssel.xls und DB-Werte.xls
Nun habe ich in der Test.xls ein Makro geschrieben, dass die schlüssel.xls im Hinterfrund versteckt öffnet, funktioniert auch problemlos.
Im Anschluss habe ich in der schlüssel.xls auch ein Makro geschrieben, dass die DB-Werte.xls versteckt öffnet, auch hier gibt es keine Probleme.
Nun jedoch der Hacken, ich habe erwartet, wenn ich die Test.xls öffne, dass auch das Makro aus der schlüssel.xls ausgeführt wird, dies ist aber leider nicht der Fall. Da sehr viele Zeilen aus der jeweils versteckt geöffneten Datei gezogen werden, habe ich viele #Bezug-Fehler.
Was kann ich machen, dass auch das Makro der schlüssel-xls ausgeführt wird.

Ich brauche auch wirklich diese 3 Dateien, kann sie nicht zu einer zusammenfassen.

Ich hoffe mir kann jemand helfen.

Liebe Grüße

Sandra S

Hallo Sandra,

Die „alte“ Methode:

Workbooks.Open "DBWerte.XLS"
ActiveWorkbook.RunAutoMacros xlAutoOpen

Dann schreibst Du in das Makro „Auto_open“ den Aufruf für Dein Makro.
Andere Möglichkeit:
Im Code für "Diese Arbeitsmappe:

Private Sub Workbook\_Open()
 Mein\_Makro
End Sub

Habe beides leider nicht getestet, hoffe aber, dass es funktioniert

Gruß
Arnold

Hallo Arnold,

danke, das hat super funktioniert.
Nun habe ich für beide Dateien auch noch eine private Funktion Workbook_BeforeClose.
Die soll jetzt natürlich auch noch mit ausgeführt werden. habe versucht die zeile entsprechend deinem Tip umzusetzen, das hat jedoch leider nicht funktioniert. Gibt es dafür einen anderen Weg?

Danke nochmal

LG Sandra

Nun habe ich für beide Dateien auch noch eine private Funktion
Workbook_BeforeClose.
Die soll jetzt natürlich auch noch mit ausgeführt werden. habe
versucht die zeile entsprechend deinem Tip umzusetzen, das hat
jedoch leider nicht funktioniert. Gibt es dafür einen anderen
Weg?

Hallo Sandra,

ich verstehe dein Problem nicht. Wenn du in der aktuellen Mappe in einem Standardmodul diesen Code hast:

Sub tt()
Workbooks.Open „C:\test\kwkombif.xls“
Workbooks(„kwkombif.xls“).Close
End Sub

so wird beim Starten dieser Prozedur die Mappe kwkombif.xls geöffnet und gleich wieder geschlossen.
Währedndessen werden doch die relevanten Ereignis-Makros in „DieseArbeitsmappe“ abgearbeitet:

Diese da:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox „close“
End Sub

Private Sub Workbook_Open()
MsgBox „open“
End Sub

Gruß
Reinhard

ich verstehe dein Problem nicht. Wenn du in der aktuellen
Mappe in einem Standardmodul diesen Code hast:

Sub tt()
Workbooks.Open „C:\test\kwkombif.xls“
Workbooks(„kwkombif.xls“).Close
End Sub

so wird beim Starten dieser Prozedur die Mappe kwkombif.xls
geöffnet und gleich wieder geschlossen.
Währedndessen werden doch die relevanten Ereignis-Makros in
„DieseArbeitsmappe“ abgearbeitet:

Diese da:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox „close“
End Sub

Private Sub Workbook_Open()
MsgBox „open“
End Sub

Gruß
Reinhard

Hallo Reinhard,

ich will eben nicht dass die Datei nach dem öffnen gleich wieder geschlossen wird, da Gültigkeiten dahinter hängen, die sonst nicht mehr funktionieren würden.

Die Dateien sollen erst am Schluss wieder geschlossen werden, d.h. schließe ich Test.xls, wird per Makro schlüssel.xls geschlossen. Nun bleibt jedoch DB-Werte.xls offen. Also soll vorher das Makro von schlüssel.xls ausgeführt werden, damit am Ende alle 3 Dateien geschlossen sind.
Nur wie das funktioniert weiß ich leider nicht.

Gruß Sandra

Hallo Sandra,

Freut mich, dass ich Dir ein wenig helfen konnte. Warum das mit dem Workbook_BeforeClose nicht funktioniert, kann ich leider nicht nachvollziehen. Vielleicht solltest Du an der Stelle weiter ausprobieren, oder den Code in einem anderen Programmteil mit ausführen.

Gruß
Arnold

Hallo Sandra,

Du kannst doch die Dateien mit einem Makro schliessen.

 Workbooks("DBWerte.xls").Close
 Workbooks("Schlüssel.xls").Close
 ThisWorkbook.Close

Oder habe ich Dich falsch verstanden?

Arnold

Ich hab mein Problem jetzt irgendwie gelöst bekommen, danke für eure Hilfe.

Grüße
Sandra