Excel – Arbeitsmappe automatisch schliessen und speichern

Microsoft Excel auf einem Mac

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.

Sascha

Hauptberuflich "Technologietreiber für Onlinezeugs" in einem Großkonzern. Interessiert an Technik im Allgemeinen, je abgedrehter, umso besser. Neben Familie, Hund und Beruf hat er trotzdem noch Spaß daran Sachen aufzuschreiben, die einem tagsüber so begegnen (manchmal auch nachts ;)).

9 Antworten

  1. Peter sagt:

    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

  2. Sascha sagt:

    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

  3. Fahr ed Din sagt:

    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

  4. Dennis sagt:

    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

  5. Andy sagt:

    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)?

  6. Sascha sagt:

    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

  7. borusse sagt:

    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?

  8. borusse sagt:

    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

  9. Copy-Paste Programmer sagt:

    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?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert