Probleem met afsluiten van "On Time" commando

Status
Niet open voor verdere reacties.

joske13

Gebruiker
Lid geworden
15 sep 2009
Berichten
50
Omdat ik een bestand gebruik wat door meerdere personen, via een netwerk, gebruikt kan worden, heb ik iets toegevoegd waardoor het bestand na 15 minuten van inactiviteit vanzelf afsluit.

Probleem is echter dat ik alleen het werkbook sluit, en niet geheel Excel.
Daardoor lijkt de "Application.OnTime" actief te blijven.
Dat is vervelend omdat het bestand na een tijdje vanzelf weer wil openen.

Vandaar mijn vraag, hoe kan ik het werkbook echt afsluiten, zonder excel af te sluiten.

Het valt mij ook op dat, ook al heb ik het werkbook gesloten, dat het bestand in VBA actief blijft.
Dus het werkbook wardt gesloten. Open ik dan VBA, dan zie ik daar het werkbook nog staan

Ik sluit het bestand af met:
(Overigens ook ergens van internet geplukt)


Met vriendelijk groet

Jos

Code:
Dim DownTime As Date
Sub SetTimer()
    DownTime = Now + TimeValue("00:15:00")
    Application.OnTime EarliestTime:=DownTime, Procedure:="ShutDown", Schedule:=True
    'Sheets("Dashboard").Range("T27").Value = Format(DownTime, "hh:nn:ss")
    Application.StatusBar = Application.UserName & "-" & ", PRIOPROG ZAL, ZONDER SAVEN, WORDEN AFGESLOTEN OM: " & "     " & DownTime
    End Sub
Sub StopTimer()
    On Error Resume Next
    Application.OnTime EarliestTime:=DownTime, Procedure:="ShutDown", Schedule:=False
End Sub
Sub ShutDown()
    Application.DisplayAlerts = False
    Workbooks("PrioProg 2.xlsm").Saved = True

    'vbs = Environ("temp") & "\BestandGesloten.vbs"
    'Open vbs For Output As #1
    'Print #1, "MsgBox " & Chr(34) & "PrioProg is automatisch afgesloten. Bestand is niet gesaved" & Chr(34)
    'Close #1
    'Shell ("wscript " & vbs)
    
    If Not CloseMode Then
    CloseMode = True
    Workbooks("PrioProg 2.xlsm").Saved = True
    Application.DisplayAlerts = False
    Application.StatusBar = False
    Workbooks("PrioProg 2.xlsm").Close
    Application.DisplayAlerts = True
    
    
    'Test omdat het bestand steeds opnieuw opstart
    'Application.OnTime , Schedule:=False
    
    
    End If
End Sub
 
Wat ik uit het artikel haal is dat ik de "OnTime" af moet sluiten met hetzelfde commando als waarmee hij wordt gestart.
Met het verschil dat schedule =False ipv True


Application.OnTime EarliestTime:=DownTime, Procedure:="ShutDown", Schedule:=False

Maar als ik dit invul krijg ik een foutmelding.
 
Nog een keer lezen dan, want er staat iets anders.
 
Ik heb de link nog eens bekeken en gelezen.
Nu heb ik "Call StopTimer" in de shutdown module geplaats
Ik krijg geen foutmelding meer, terwijl dezefde code wordt geactiveerd (Application.OnTime EarliestTime:=DownTime, Procedure:="ShutDown", Schedule:=False)


Wat me wel opvalt is de regel:
"NB. De uitschakeling werkt natuurlijk alleen als het ontime-tijdstip nog niet is geweest."
Maar het geheel komt pas in werking als het ontime-tijdstip bereikt is.

Overigens vraag ik mijzelf ook af waarom "SNB" typt: "Had je beter niet kunnen doen"
Is het uitschakelen na een bepaalde tijd niet aan te raden??


Jos
 
Ik ga er van uit dat mijn vervelend probleempje is verholpen.
Ik heb het nl nog niet kunnen testen/proberen met het juiste bestand op mijn werk.

Maar toch bedankt voor de gestuurde link en de reacties.

En van het internet plukken vond ik persoonlijk wel een goed idee.


Jos
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan