Anzeige
Archiv - Navigation
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mappe schliessen wenn keine Eingabe

Mappe schliessen wenn keine Eingabe
09.05.2003 02:57:13
Heino B
Hallo

Ich habe eine Arbeitsmappe erstellt, die von mehreren Personen genutzt wird. Leider kommt es vor das ein Benutzer vergisst die Arbeitsmappe zu schliessen, und damit die Mappe für alle anderen Benutzer gesperrt ist.

Mein wunsch wäre:
Wenn der Benutzer 10 Minuten keine Änderung an der Mappe vornimmt, dann soll eine UserForm1 erscheinen.
Wird dann innerhalb 1 Minute nicht der CommandButton1 betätigt, dann soll die Mappe gespeichert und geschlossen werden.
Wird daber der CommandButton1 betätigt dann sollen die 10 Minuten wieder von vorne beginnen.

Ich bin leider nicht so fit in VBA das ich diese Makros selber schreiben kann.
Kann mir eventuell jemand dabei helfen ??

Gruß Heino

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mappe schliessen wenn keine Eingabe
09.05.2003 06:22:15
Forum
Hall Heino

nach 15 Sekunden erscheint die Userform nach weiteren 10 Sekunden wird die datei geschloßen. Die Veränderungen werden gespeichert.


' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub Workbook_Open()
Zeitmakro
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime EarliestTime:=ET, Procedure:="Zeitmakro", Schedule:=False
End Sub


' **************************************************************
' Modul: UserForm1 Typ = Userform
' **************************************************************

Option Explicit

Private Sub UserForm_Initialize()
BoZu = False
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Damit mit X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub

Private Sub CMD_Nein_Click()
Zeitmakro
BoZu = True
Me.Hide
End Sub


' **************************************************************
' Modul: Modul2 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
Public ET As Variant
Public ET1 As Variant
Public BoZu As Boolean

Sub Zeitmakro()
BoZu = False
On Error Resume Next
Application.OnTime EarliestTime:=ET1, Procedure:="Zeitmakro", Schedule:=False
ET = Now + TimeValue("00:00:15")
Application.OnTime ET, "Start"
End Sub

Sub Start()
ET1 = Now + TimeValue("00:00:10")
Application.OnTime ET1, "Schließen"
UserForm1.Show
End Sub

Sub Schließen()
Unload UserForm1
If BoZu = False Then ThisWorkbook.Close True
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Anzeige
Re: Mappe schliessen wenn keine Eingabe
09.05.2003 06:53:34
Forum
Hallo Heino

der erste Code schloß auch bei Aktion in der Datei. Jetzt ein Code der bei Inaktivität schließt.


' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub Workbook_Open()
Zeitmakro
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime EarliestTime:=ET, Procedure:="Zeitmakro", Schedule:=False
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnTime EarliestTime:=ET, Procedure:="Start", Schedule:=False
Zeitmakro
End Sub


' **************************************************************
' Modul: UserForm1 Typ = Userform
' **************************************************************

Option Explicit

Private Sub UserForm_Initialize()
BoZu = False
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Damit mit X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub

Private Sub CMD_Nein_Click()
Zeitmakro
BoZu = True
Me.Hide
End Sub


' **************************************************************
' Modul: Modul2 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
Public ET As Variant
Public ET1 As Variant
Public BoZu As Boolean

Sub Zeitmakro()
BoZu = False
On Error Resume Next
Application.OnTime EarliestTime:=ET1, Procedure:="Zeitmakro", Schedule:=False
ET = Now + TimeValue("00:00:15")
Application.OnTime ET, "Start"
End Sub

Sub Start()
ET1 = Now + TimeValue("00:00:10")
Application.OnTime ET1, "Schließen"
UserForm1.Show
End Sub

Sub Schließen()
Unload UserForm1
If BoZu = False Then ThisWorkbook.Close True
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Anzeige
Re: Mappe schliessen wenn keine Eingabe
09.05.2003 22:25:34
Heino B
Hallo Hajo

Ich Danke Dir.
Der Code ist Super und Funktioniert genau wie ich es mir vorgestellt habe.
Gruß und ein schönes Wochenende.

Heino

Ergänzung
09.05.2003 22:47:44
Heino B
Hallo Hajo

Ich hatte leider noch ein Poblem mit dem Code.
Wenn ich auf den Button CMD_Nein_ clicke dann schliesst sich bei Deinem Code trotzdem die Arbeitsmappe.
Ich habe folgende Äderung vorgenommen und es scheint zu Funktionieren. Ich Teste aber noch weiter.

Sub Zeitmakro()
'BoZu = False 'Dieses habe ich herausgenommen
On Error Resume Next
Application.OnTime EarliestTime:=ET1, Procedure:="Zeitmakro", Schedule:=False
ET = Now + TimeValue("00:00:15")
Application.OnTime ET, "Start"
End Sub

Gruß Heino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige