Clever-Excel-Forum

Normale Version: Beim Öffnen einer neuen Arbeitsmappe die vorhergehende schließen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

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,

(29.09.2015, 15: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?
(29.09.2015, 15:22)Glausius schrieb: [ -> ]Hallo,

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.
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.
Hallo Ralf,

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.
(29.09.2015, 16:19)Glausius schrieb: [ -> ]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.

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, 16: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.
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.
Hallo Günter,

Schreibe mal ein Savechanges:=True hinter die Close -Anweisung, vielleicht hilft es.
Hallo Edgar,

dein Hinweis hat leider auch nicht zum Erfolg geführt.
Seiten: 1 2