Excel – Arbeitsmappe automatisch schliessen und speichern


Eine Arbeitsmappe automatisch speichern und schließen lassen, wenn eine definierte Zeitspanne lang keine Änderungen mehr an der Arbeitsmappe stattgefunden haben. Das wünscht sich jeder, der einen Kollegen hat, der gerne mit geöffneten Dokumenten in die Mittagspause geht.
Der Einbau der Funktion gestaltet sich nicht weiter schwierig.
Öffnen Sie unter Extras -> Makro den ‚Visual Basic Editor‚.
Hier doppelklicken Sie im linken oberen Fenster auf ‚Diese Arbeitsmappe‚ und fügen Sie im rechten Fenster folgenden Quelltext ein:
Dim altezeit
Private Sub Workbook_Open()
On Error Resume Next
neuezeit = Time + TimeSerial(0, 1, 0)
Application.OnTime EarliestTime:=altezeit, Procedure:=“Schließen“, Schedule:=False
altezeit = neuezeit
Application.OnTime neuezeit, „Schließen“
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
neuezeit = Time + TimeSerial(0, 1, 0)
Application.OnTime EarliestTime:=altezeit, Procedure:=“Schließen“, Schedule:=False
altezeit = neuezeit
Application.OnTime neuezeit, „Schließen“
End Sub
Fügen Sie im Visual Basic Editor mit Einfügen -> Modul ein neues Modul ein.Hier ergänzen Sie folgenden Quelltext:
Sub Schließen()
ActiveWorkbook.Close savechanges:=True
End Sub
Damit speichert und schließt die entsprechende Arbeitsmappe sich nach 1 Minute Inaktivität ganz von selbst. Die Zeitspanne kann natürlich ganz nach Wunsch abgeändert werden.
Hallo, habe angeführtes Beispiel in das Makro meiner Arbeitsmappe implementiert und es funkioniert auch einwandfrei, ist es aber auch möglich innerhalb von diesem Makro auch Excel zu beenden ?
Grüßüe Peter
Hallo Peter,
das sollte in etwa so funktionieren: z.B. einen Button einfügen, der bei Klick die Mappe und Exel schließt.
Sub Schaltfläche1_BeiKlick()
Application.Quit
ThisWorkbook.Close Savechanges:=False
End Sub
Grüße Sascha
Hallo, das Makro funktioniert; Problem: wenn man trotzdem selber speichert und schließt öffnet die Arbeitsmappe wieder und schließt nach der der angegeben Zeit. Das nervt, wenn man mit mehreren Arbeitsmappen gleichzeitig arbeitet! Gibt es dafür eine Lösung?
Gruß Fahr ed Din
Hallo, danke für die Top Lösung! Einen Tipp benötige ich noch. ich würde gerne vor dem Schließen ein einzelnes Tabellenblatt (gerne als Wertkopie) zus√§tzlich an einem anderen Ort speichern. habe jetzt einige versuche „erfolgsneutral“ getestet. Würde mich über einen tipp freuen. Besten Dank im Voraus, Dennis
Hallo an Alle,
kann mir jemand bitte mitteilen, wie ich das in Excel 2010 erledige? Ich finde nur unter Ansicht Makros. Dann Makro aufzeichnen oder wie? Muß ich alles aus dem Text dort reinschreiben (die beiden Absätze)?
Hi Andy,
du findest den VBA-Editor unter „Entwicklertools“ im Ribbon am oberen Bildschirmrand. Ist der Eintrag nicht vorhanden, musst du kurz unter Datei->Optionen->Men√ºband anpassen. Hier einfach Entwicklertools freischalten.
VG
Sascha
Hallo, wie deklariere ich die Variablen korrekt?
Da ich Option explicit () eingestellt habe muss ich die Variablen deklarieren. Das Makro startet aber nicht, die Datei wird also nicht geschlossen.
Ich vermute es liegt an den Variablen.
Hat jemand nen tip?
Hallo,
ich nutze Option explicit.
Deshalb muss ich die variablen neuezeit und altezeit deklarieren.
kann mir jemand helfen und posten als was man die deklarieren muss?
Gruß,
Borusse
Hallo, das Ganze hat bei mir leider nicht funktioniert. Die Tabelle schließt nicht nach einer Minute automatisch. Muss ich noch Werte ergänzen oder alles nur Copy-Paste? Sonst habe ich nämlich alles so gemacht wie beschrieben.
Wenn das funktioniert, würde ich das Ganze gerne so machen, dass es NICHT speichert. Wäre dann ActiveWorkbook.Close savechanges:=False der richtige Ansatz?