Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Beim Öffnen einer neuen Arbeitsmappe die vorhergehende schließen
#1
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?
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#2
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?
Antworten Top
#3
(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.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#4
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.


Angehängte Dateien
.xlsm   Offene Posten.xlsm (Größe: 48,16 KB / Downloads: 12)
.xlsm   Ereignisliste.xlsm (Größe: 79,72 KB / Downloads: 10)
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#5
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.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#6
(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.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#7
(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.
Antworten Top
#8
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.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#9
Hallo Günter,

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

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#10
Hallo Edgar,

dein Hinweis hat leider auch nicht zum Erfolg geführt.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste