Ich wollte mich mit der Begründung auch gar nicht rausreden oder sonstiges. Damit wollte ich nur sichergehen, das niemand meint ich würde Codes einfach kopieren und diese unter meinem Namen ausgeben. Habe das ganze auch nur als konstruktive Kritik aufgenommen.
Habe den Code nun so abgeändert:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime CloseTimer, "DoClose", , False
End Sub
Private Sub Workbook_Open()
CloseTimer = Now + TimeSerial(0, 4, 0)
Application.OnTime CloseTimer, "DoClose"
CloseNow = False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
CloseTimer = Now + TimeSerial(0, 4, 0)
CloseNow = False
End Sub
Option Explicit
Public CloseTimer As Date, CloseNow As Boolean
Public Sub DoClose()
Dim strMsg As String
If Übersicht.Range("A1").Value = 1 Then
Exit Sub
End If
If CloseNow = False Then
strMsg = "Diese Datei wurde seit 4 Minuten nicht bearbeitet und" & vbCrLf & _
"wird bei weiterer Inaktivität in 1 Minute geschlossen."
CreateObject("WScript.Shell").PopUp strMsg, 10, ThisWorkbook.Name, _
vbOKOnly + vbInformation + vbSystemModal
CloseNow = True
CloseTimer = Now + TimeSerial(0, 1, 0)
Application.OnTime CloseTimer, "DoClose"
Else
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
Option Explicit
Private Sub DoCloseCancel()
Application.OnTime CloseTimer, "DoClose", , False
End Sub
Ich habe das ganze so mal getestet und funktionierte auch. Es sollte jetzt eigentlich ja nichts überflüssiges mehr vorhanden sein oder ?
|