Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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
Inhaltsverzeichnis

Workbook_BeforeClose

Workbook_BeforeClose
Benedikt
Guten Abend zusammen.
Mein Arbeitsblatt durchläuft beim schliessen nachfolgenden Code und läuft einwandfrei:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Run "PDFspeichern"
ThisWorkbook.Close True
End Sub
Da die Datei von mehreren Usern benutzt wird, bleibt Sie leider immer wieder schreibgeschützt offen stehen und der User ist in einer Sitzung. Arbeitsmappe freigeben haut auch nicht, da mit Objekten gearbeitet wird. Auf der Suche nach einer "schliessen bei nichtgebrauch" habe nachfolgenden Code gefunden. Haut eigentlich Tip Top hin.
in dieser Mappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Zurücksetzen
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
startzeit
End Sub
in 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:10:00")
Application.OnTime datA, "Schließen"
End Sub
Sub Schließen()
ThisWorkbook.Close True
End Sub
Sub Zurücksetzen()
Application.OnTime EarliestTime:=datA, Procedure:="Schließen", Schedule:=False
End Sub
Wie muss ich den Code ändern damit das "Zurücksetzen und Schliessen" im Workbook_BeforeClose stattfindet?
Vielen Dank für eure Hilfe

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Workbook_BeforeClose
30.04.2012 09:32:43
Tino
Hallo,
ich hätte es so versucht.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
If nRunTime > 0 Then Call Schließen(True) 
End Sub 
 
Private Sub Workbook_Open() 
Call StartTimer 
End Sub 
kommt als Code in Modul1
Option Explicit 
 
Public nRunTime As Date 
 
Sub StartTimer() 
nRunTime = Now + TimeSerial(0, 10, 0) 
Application.OnTime EarliestTime:=nRunTime, Procedure:="Schließen" 
End Sub 
 
Sub StopTimer() 
On Error Resume Next 
Application.OnTime EarliestTime:=nRunTime, Procedure:="Schließen", Schedule:=False 
End Sub 
 
Sub Schließen(Optional booCloseMode As Boolean = False) 
Dim oWB As Workbook, i% 
 
Call StopTimer 
nRunTime = 0 
 
For Each oWB In Workbooks 
    If UCase(oWB.Name) <> "PERSONAL.XLS" And UCase(oWB.Name) <> "PERSONAL.XLSB" Then 
        i = i + 1 
    End If 
Next oWB 
 
If Not ThisWorkbook.ReadOnly Then 
    Application.Run "PDFspeichern" 
    ThisWorkbook.Save 
    If Not booCloseMode Then 
        If i = 1 Then 
            Application.EnableEvents = False 
            Application.Quit 
        Else 
            ThisWorkbook.Close 
        End If 
    End If 
End If 
 
End Sub 
Gruß Tino
Anzeige
Vielen Dank - kleine Rückfrage
30.04.2012 10:02:22
Benedikt
Hallo Tino - von wegen VBA bescheiden!!!!
Die Sache läuft einwandfrei. PDF Speichern bei direktem schliessen der Datei wie auch wenn automatisch geschlossen wird. Vielen Dank
Kleine Frage: wofür ist der Stop Timer ?
Call StopTimer
nRunTime = 0
AW: Vielen Dank - kleine Rückfrage
30.04.2012 10:14:05
Tino
Hallo,
man sollte den Timer beim schließen der Datei zurücksetzen,
vor allem wenn die Application offen bleibt.
Gruß Tino

85 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige