Gibt es eine Möglichkeit, die Excel nach ablauf einer bestimmten Zeit in der excel nicht benutzt wurde, veranlasst automatisch zu speichern und zu beenden?
Besten Dank für eure Hilfe!
Sascha
Gibt es eine Möglichkeit, die Excel nach ablauf einer bestimmten Zeit in der excel nicht benutzt wurde, veranlasst automatisch zu speichern und zu beenden?
Besten Dank für eure Hilfe!
Sascha
Also es ist eine Materialbestellliste, auf die von mehreren Workstations im Netzwerk zugegriffen wird... Und leider gibts leute die diese liste dann icht mehr schliessen.. Es sind also nur Eingaben... Und sobald zbs. 1 Minute nichts mehr verändert wurde, sprich nichts geschrieben, sollte Excel speichern und schliessen!
Thanx!
in diese Arbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Zurücksetzen
End Sub
Private Sub Workbook_Open()
startzeit
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
startzeit
End Sub
in ein Modul
Option Explicit
Dim datA As Date
Sub startzeit()
On Error Resume Next
Application.OnTime EarliestTime:=datA, Procedure:="Schließen", Schedule:=False
datA = Now + CDate("0:08:0")
Application.OnTime datA, "Schließen"
End Sub
Sub Schließen()
ActiveWorkbook.Close True
End Sub
Sub Zurücksetzen()
Application.OnTime EarliestTime:=datA, Procedure:="Schließen", Schedule:=False
End Sub
gruss geri
Mappe speichern --> schliessen --> und neu öffnen
gruss geri
1. In das Klassenmodul "Diese Arbeitsmappe"
Option Explicit
Private Sub Workbook_Open()
einschalten
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ausschalten
End Sub
2. In das Klassenmodul des Tabellenblattes
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
ausschalten
einschalten
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ausschalten
einschalten
End Sub
3. In ein normales Modul
Option Explicit
Public beenden As Date
Public Sub einschalten()
beenden = Time + TimeSerial(0, 1, 0)
Application.OnTime beenden, "Ende"
End Sub
Public Sub ausschalten()
On Error Resume Next
Application.OnTime beenden, "Ende", , False
End Sub
Public Sub Ende()
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub
Am besten ist es die Makros digital zu signieren, dann kommt beim öffnen der Mappe die Abfrage, ob die Makros aktiviert weren sollen, nicht.
Gruß
Nepumuk
Besten Dank für eure überaus grosszügige Hilfe!!
Noch eine Frage.. wie geht das mit der Digitalen Signatur (Sorry, bin halt schon ein Newbie..)? Habe zwar ein Auswahlfenster gefunden, jedoch nichts zum auswählen?!?
Gruss
Sascha
gruss geri
Ich habe jetzt gemerkt, dass Excel schliesst, auch wenn ich noch am schreiben bin! Wird zwar sauber gespeichert, jedoch ist das schon ein wenig umständlich, wenn einem die bestelliste plötzlich vor den augen verschwindet...?!? Lösungen?
Sascha
Etwa 1 Minute hab ich gemessen... aber eben, der stellt ab ob ich noch am schreiben bin oder nicht... :/
Gruss
Vielen Dank! Dein Teil funktioniert tatsächlich einwandfrei!!
Vielen Dank!
Sascha
Um Excel automatisch zu schließen, wenn es eine bestimmte Zeit inaktiv war, folge diesen Schritten:
Öffne den VBA-Editor:
Alt + F11.Füge den folgenden Code in das Modul "Diese Arbeitsmappe" ein:
Option Explicit
Private Sub Workbook_Open()
einschalten
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ausschalten
End Sub
Füge den folgenden Code in ein Modul ein:
Option Explicit
Public beenden As Date
Public Sub einschalten()
beenden = Time + TimeSerial(0, 1, 0) ' 1 Minute
Application.OnTime beenden, "Ende"
End Sub
Public Sub ausschalten()
On Error Resume Next
Application.OnTime beenden, "Ende", , False
End Sub
Public Sub Ende()
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub
Speichere deine Änderungen und schließe den VBA-Editor.
Teste die Funktion: Lass Excel eine Minute inaktiv sein und beobachte, ob es sich automatisch schließt.
Excel schließt, während du noch schreibst: Überprüfe die Zeiteinstellung im Code. Stelle sicher, dass die Zeitspanne für die Inaktivität den Bedürfnissen deiner Arbeit entspricht.
Makros werden nicht aktiviert: Stelle sicher, dass die Makros in deinen Excel-Einstellungen aktiviert sind. Du kannst auch das Makro digital signieren, um die Abfragen beim Öffnen der Datei zu vermeiden.
Falls du VBA nicht verwenden möchtest, kannst du auch einen Timer ohne VBA verwenden. Hierzu kannst du eine externe Anwendung oder ein Skript nutzen, das Excel nach einer bestimmten Zeit schließt. Beachte, dass diese Methode weniger flexibel ist und du möglicherweise eine manuelle Intervention benötigst.
Hier ist ein Beispiel, wie du eine Excel-Datei nach einer Inaktivität von 2 Minuten automatisch schließen kannst. Ändere einfach die TimeSerial-Einstellung:
beenden = Time + TimeSerial(0, 2, 0) ' 2 Minuten
So kannst du die Inaktivitätszeit anpassen, je nach Bedarf deiner Arbeitsumgebung.
Makros digital signieren: Um die Aktivierung von Makros zu vereinfachen, kannst du ein digitales Zertifikat erstellen. Suche nach SELFCERT.EXE in deinem Office-Installationsordner, um ein Zertifikat zu generieren.
Testen in verschiedenen Excel-Versionen: Achte darauf, dass der Code in deiner spezifischen Excel-Version getestet wird, um mögliche Inkompatibilitäten zu vermeiden.
1. Wie kann ich die Zeit, nach der Excel automatisch schließt, ändern?
Du kannst die Zeit im TimeSerial-Befehl im VBA-Code anpassen.
2. Was passiert, wenn ich eine nicht gespeicherte Datei habe? Der Code speichert die Datei automatisch, bevor sie geschlossen wird. Stelle sicher, dass du alle wichtigen Änderungen vornimmst, bevor die Inaktivität eintritt.
3. Kann ich den Code für andere Anwendungen verwenden? Der gegebene Code ist spezifisch für Excel, aber ähnliche Logik kann auch in anderen VBA-fähigen Anwendungen verwendet werden.