|  
                                             
	Hallo, 
	ich habe derzeit folgende Situation, welche mir ständig einen Strich durch die Rechnung machen möchte: 
	Der Nutzer befindet sich in Bedarfsanzeige.xlsm und möchte gerne in Lieferante.xlsm einen neuen Lieferant hinzufügen und dann wieder zurück in Bedarfsanzeige.xlsm. Nun habe ich aber in Lieferante.xlsm eine Automatische Schließung mit eingebunden, welche die Datei nach 5 Minuten schließen soll, wenn sie nicht mehr bearbeitet wird. Sobald ich aber wieder in Bedarfsanzeige.xlsm wechsel, bekomme ich nach 4 Minuten die Benachrichtigung der Automatischen Schließung, obwohl Lieferante.xlsm geschlossen ist, nicht mehr in der Taskleiste angezeigt wird und auch nicht mehr in Visual Basic zu sehen ist. 
	  
	Der Code, welchen ich für das wechseln der Dateien verwende: 
Workbooks.Open (Datei)
ThisWorkbook.Close SaveChanges:=True 
	  
	Der Code, welchen ich für die Automatische Schließung verwende: 
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
End Sub
Private Sub Workbook_Open()
dteCloseTime = Now + TimeSerial(0, 4, 0)
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 4, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 4, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 4, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub 
	  
Option Explicit
Public dteCloseTime As Date, blnCloseNow As Boolean
Public Sub DoClose()
Dim strMsg As String
If blnCloseNow = 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
  blnCloseNow = True
  dteCloseTime = Now + TimeSerial(0, 1, 0)
  Application.OnTime dteCloseTime, "DoClose"
Else
  If Workbooks.Count = 1 Then
    If ThisWorkbook.Saved = False Then
      ThisWorkbook.Save
    End If
    Application.Quit
  Else
    ThisWorkbook.Close True
  End If
End If
End Sub
	  
	Übersehe ich hier irgendwo einen wichtigen Punkt, oder weshalb wird der Code weiterhin ausgeführt, obwohl die Datei nicht mehr geöffnet ist ? 
	  
	Gruß Lukas 
     |