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