mich schäftigt bereits seid langem folgendes Problem:
Beim Öffnen einer neiuen Arbeitsmappe im Vordergrund soll die dadurch in den Hintergrund gelangende Arbeitsmappe geschlossen werden.
Bei folgenden Code:
Sub Workbook_Open()
On Error Resume Next Workbooks("Offene Posten.xlsm").Close On Error GoTo 0 Sheets("Basis").Activate . . . End Sub
wird zwar die Arbeitsmappe geöffnet, die "Offene Posten.xlsm" auch geschlossen, aber Excel springt gleichzeitig aus dem Code raus und bleibt stehen. Die letzte Zeile, die abgearbeitet wird ist Workbooks("Offene Posten.xlsm").Close und dann ist Schluss.
Was ist denn da falsch dran und wie kann ich Excel dazu bewegen, den Code ab der nächsten Zeile fortzuführen?
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
(29.09.2015, 16:22)Glausius schrieb: beim Öffnen einer neiuen Arbeitsmappe im Vordergrund soll die dadurch in den Hintergrund gelangende Arbeitsmappe geschlossen werden.
hast Du auch mal mit ThisWorkbook und ActiveWorkbook gespielt?
mich schäftigt bereits seid langem folgendes Problem:
Beim Öffnen einer neiuen Arbeitsmappe im Vordergrund soll die dadurch in den Hintergrund gelangende Arbeitsmappe geschlossen werden.
Bei folgenden Code:
Sub Workbook_Open()
On Error Resume Next Workbooks("Offene Posten.xlsm").Close On Error GoTo 0 Sheets("Basis").Activate . . . End Sub
wird zwar die Arbeitsmappe geöffnet, die "Offene Posten.xlsm" auch geschlossen, aber Excel springt gleichzeitig aus dem Code raus und bleibt stehen. Die letzte Zeile, die abgearbeitet wird ist Workbooks("Offene Posten.xlsm").Close und dann ist Schluss.
Was ist denn da falsch dran und wie kann ich Excel dazu bewegen, den Code ab der nächsten Zeile fortzuführen?
Hi Günter,
habe eben mal 2 Dateien als test erstellt, Offene Posten.xlsm geöffnet und und die mit deinem Code, alles läuft wie du es willst.
Was mich nur stutzig macht:
Zitat:Beim Öffnen einer neuen Arbeitsmappe im Vordergrund
wo steht denn dein Code? Bei neuer Datei ist doch nix drin.
29.09.2015, 17:19 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2015, 17:23 von Glausius.)
Hallo Michael,
der Code steht in "Diese Arbeitsmappe" in der zu öffnenden Datei.
Vielleicht sollte ich noch folgendes erläutern (hab ich vorhin vergessen):
Als Erstes wird die "Offene Posten.xlsm" über Autostart beim Hochfahren des Rechners geöffnet. Die darin relevanten Informationen werden in Userforms angezeigt und mittels Button beantwortet. Beim Abschließen der Informationen wird aus der "Offenen Posten.xlsm" die weitere Datei, also die mit dem geposteten Code, geöffnet und dabei soll die aufrufende Datei "Offene Posten.xlsm" eben geschlossen werden.
Der Code zum Öffnen aus der "Offenen Posten.xlsm" lautet:
Sub Beenden()
ActiveWindow.DisplayWorkbookTabs = False ThisWorkbook.Save Workbooks.Open Filename:="E:\eigene Vorlagen\Ereignisliste.xlsm" End Sub
und steht in einem allgemeinen Modul.
Am Besten ist, ich hänge diese beiden Dateien mit (fast) leerem Inhalt hier einmal an.
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
der Code steht in "Diese Arbeitsmappe" in der zu öffnenden Datei.
Vielleicht sollte ich noch folgendes erläutern (hab ich vorhin vergessen):
Als Erstes wird die "Offene Posten.xlsm" über Autostart beim Hochfahren des Rechners geöffnet. Die darin relevanten Informationen werden in Userforms angezeigt und mittels Button beantwortet. Beim Abschließen der Informationen wird aus der "Offenen Posten.xlsm" die weitere Datei, also die mit dem geposteten Code, geöffnet und dabei soll die aufrufende Datei "Offene Posten.xlsm" eben geschlossen werden.
Der Code zum Öffnen aus der "Offenen Posten.xlsm" lautet:
Sub Beenden()
ActiveWindow.DisplayWorkbookTabs = False ThisWorkbook.Save Workbooks.Open Filename:="E:\eigene Vorlagen\Ereignisliste.xlsm" End Sub
und steht in einem allgemeinen Modul.
Am Besten ist, ich hänge diese beiden Dateien mit (fast) leerem Inhalt hier einmal an.
Hi Günter,
starte ich die OffenePosten und wähle keine Änderungen, wird die Datei geschlossen, die andere ist dann offen und zeigt so einen genarbten Untergrund. Läuft offenbar in dieser Richtrung richtig. Da nicht bekannt, was an Daten einzutragen ist, kann ich den anderen Fall mit Änderungen nicht durchspielen.
(29.09.2015, 17:25)Glausius schrieb: ich habe deinen Hinweis gelesen, nur ist mir nicht klar, was und wie das beim Öffnen bzw. Schließen der Arbeitsmappen verwendet werden kann/soll.
die Frage stellte sich für mich, in welcher der Dateien sich das schließende Makro befindet.
Die wurde ja jetzt beantwortet: in der zweiten, dann müßte das Makro ja eigentlich weiterlaufen.
29.09.2015, 19:01 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2015, 19:32 von Glausius.)
Hallo Michael, hallo Ralf,
genau das ist das Problem, das Makro der zweiten Datei (*.Close) bleibt nach dem Schließen der ersten Datei stehen, deshalb der "genoppte" Hintergrund - der gehört zur zweiten Datei, wo das Makro nach dem Schließen der ersten Datei "hängen" bleibt-.
Micha, wenn der genoppte Hintergrund da ist, gehe bitte in den VBA-Edistor und führe das Makro hinter "DieseArbeitsmappe" - Workbook_open im Schrittmodus zu Ende aus. Es kommt dann eine Abfrage, ob es neue Termine einzutragen gibt, bei "Ja" gibt es eine Eingabemaske und bei "Nein" wird die Datei geschlossen.
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig