neuer Tag, neues Problem. Habs gestern nicht mehr geschafft, deswegen frag
ich euch:
Ich öffne Datei1.xls. In dieser Datei wird über das Makro mit dem
BefehlApplication.Workbooks.Open die Datei2.xls geöffnet. Danach wechsle ich
mit Windows.(Datei1.xls).activate wieder zurück auf die Ursprungsdatei.
So folgendes Problem:
Datei 1 darf beim Beenden auf keinen Fall überspeichert werden. Das hab ich
geschafft mit "ThisWorkbook.Close SaveChanges:=False" und
"Application.DisplayAlerts = False" in "DieseArbeitsmappe"
Datei 2 muss auf jeden Fall ohne nachzufragen gespeichert werden. Das hab
ich genauso gemacht wie bei Datei 1 (allerdings SaceChanges:=True).
So, jetzt weiss ich nicht mehr weiter.
Wenn ich Datei 1 (im Vordergrund, Aktiv) beende (über X Schliessen, oder
auch gesamtes Excel beende) Dann soll er Datei 1 schliessen, ohne zu
speichern und Datei 2 soll er auch gleich mit schliessen mit speichern.
Schon mal Danke
Stephan
Das brauchst Du nicht. Wenn Datei1 aktiv ist und Du klickst auf X,
wird das Schließen von Datei1 eingeleitet und die Prozedur
Workbook_BeforeClose aufgerufen. Wenn Du da nochmal schließt, wird die
Prozedur unnötigerweise noch mal aufgerufen.
Es reicht, einfach die Änderungen in Datei1 zu verwerfen:
Me.Saved = True
Vorher schließt Du noch Datei2, wie von dir beschreiben. Hier der
ganze Code aus Datei1.DieseArbeitsmappe:
Peter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Variant
For Each wks In Workbooks
If wks.Name = "Datei2.xls" Then
Workbooks("Datei2.xls").Activate
ActiveWorkbook.Close SaveChanges:=True
Exit For
End If
Next
Me.Saved = True
End Sub
funktioniert schon fast einwandfrei.
Es funktioniert nur wenn ich Excel beende. Wenn ich aber nur die Datei1
beende(Fenster schliessen), dann bleibt Datei2 noch offen
Gruß
Stephan
"Peter Schleif" schrieb:
Das kann ich leider nicht bestätigen. Bei mir klappt es (2002 SP3).
Beim roten X geht alles zu. Beim schwarzen x oder Menü Datei |
Schließen gehen ebenfall beide Mappen zu, aber Excel selbst belibt
gestartet - was IMHO das normale Verhalten ist.
Peter
"Peter Schleif" schrieb: