• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Messagebox bij automatisch afsluiten omzeilen

Status
Niet open voor verdere reacties.

jansbl

Gebruiker
Lid geworden
1 mrt 2007
Berichten
86
Ik heb een werkboek, dat door meerdere mensen wordt gebruikt.
Dit werkboek is niet gedeeld.
Om te voorkomen dat personen dit werkboek onnodig lang openhouden, zodat anderen het niet kunnen bewerken, heb ik een routine ingebouwd om het werkboek na een aantal minuten automatisch te sluiten. (met dank aan http://cpearson.com/excel/OnTime.aspx )
Als er niets is gewijzigd in het werkboek, sluit deze zonder waarschuwing na de ingestelde tijd. Prima.
Als er wel iets is gewijzigd, wil ik de persoon wel in de gelegenheid stellen de gegevens op te slaan of juist niet.
Er wordt dan, uiteraard, de msgbox "Ja / Nee / Annuleren" getoond.
Bij Ja of Nee wordt al dan niet opgeslagen en xls gesloten.
Bij annuleren wordt de timer herstart. Vervolgens, na de ingestelde tijd, weer dezelfde vraagstelling. Ook allemaal nog prima.

Het komt echter ook voor dat men, bewust of onbewust, de popup laat staan, zonder op een optie te klikken. De xls blijft dan geopend.

Nu de vraag:
Hoe kan ik automatisch de optie "Ja" of "Nee" laten uitvoeren, als er na bijv. 1 minuut nog niet op de popup is gereageerd. Dit om zodoende dan toch de xls te sluiten.

Bijgaand de voorbeeld xls.
Bij het openen wordt direct de timer gestart. Voor het testen is deze op 10 seconden gezet. Dat is uiteraard te wijzigen. Als je wat meer tijd nodig hebt, kun je ook op de "Stop"-knop drukken. (in de "echte" bestanden zijn de 2 knoppen natuurlijk niet aanwezig)

Aanvulling:
Ik ben er intussen nog achter gekomen dat als code nog moet worden toegevoegd:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    StopTimer
End Sub
Dit is omdat, als de xls handmatig wordt gesloten, voordat de timer is afgelopen, de xls nog een keer wordt geopend en direct weer wordt gesloten. Dit alles omdat de timer wel doorloopt, ook al is de xls opzich gesloten.

m.vr.gr.
Jans
 

Bijlagen

  • Timer-test.xls
    35,5 KB · Weergaven: 71
Laatst bewerkt:
Oplossing nabij?

Dag mensen,

Normaal gesproken reageer ik natuurlijk niet op mijn eigen vraag.
Deze vraag staat echter al bijna 3 weken, dus ik vraag me af of iemand een oplossing heeft.

m.vr.gr.,
Jans
 
Nu de vraag:
Hoe kan ik automatisch de optie "Ja" of "Nee" laten uitvoeren, als er na bijv. 1 minuut nog niet op de popup is gereageerd. Dit om zodoende dan toch de xls te sluiten.

...en voor welke optie ga je dan kiezen als je dit via code wilt afhandelen???

Groet, Leo
 
Optie als geen "ja / nee / annuleren" wordt aangeklikt

Dag Leo,

Dank voor je reactie.

De praktijk kan wellicht anders gaan uitwijzen, maar vooralsnog ga ik dan voor de optie "Nee". Niet opslaan dus.

m.vr.gr.,
Jans
 
Is dit niet eenvoudiger als enige code ?

Code:
Sub Opslag()
  If MsgBox("Doorgaan", vbOKCancel) = vbOK Then
    Application.OnTime DateAdd("s", 120, Now), "Opslag", True
  Else
    Application.OnTime Now, "Opslag", False
    ThisWorkbook.Close True
  End If
End Sub
 
maar vooralsnog ga ik dan voor de optie "Nee". Niet opslaan dus.
je hebt nu van snb een mooie korte code gekregen die eea voor je afhandelt, maar ik denk dat je een hoop gebruikers met je idee hééééééél ongelukkig gaat maken. Ben je even plassen, is je werk verdwenen! :evil:
Mijn advies? Niet doen! Voed je gebruikers gewoon op dat ze hun workbook sluiten na gebruik.Je begeeft je zo namelijk op zeer glad ijs als programmeur...

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan