• 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.

Blokkeren excelbestand sluiten middels kruisje "venster sluiten"

Status
Niet open voor verdere reacties.

R Mol

Gebruiker
Lid geworden
15 okt 2010
Berichten
6
Beste excelisten,
Ik zoek al lang naar een vba-code om het sluiten van een bestand middels het kruisje : venster sluiten" onmogelijk te maken om zo te dwingen gebruik te maken van een macroknop, die vóór afsluiten eerst nog met een waarschuwing komt.
Ik heb een event gevonden die dat zou moeten doen, maar noch op mijn werk (excel 2003) noch thuis (excel 2007) doet onderstaande ook maar iets als ik deze plaats in de programmacode van het tabblad en het bestand sluit middels het kruisje "venster sluiten".

De code is:
Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, _
Cancel As Boolean)
a = MsgBox("Do you really want to close the workbook?", _
vbYesNo)
If a = vbNo Then Cancel = True
End Sub

Ook heb ik "Application.EnableEvents = True" uitgevoerd.
De vraag in de MsgBox wordt gewoon niet gesteld en het bestand sluit gewoon, al of niet na de vraag "bestand opslaan"

Wie kan me aan een oplossing helpen?
Alvast bedankt.
M. Mol
 
Bedoel je zoiets?

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
If MsgBox("Do you really want to close the workbook?", _
vbYesNo) = vbNo Then Cancel = True
Application.EnableEvents = True
End Sub
 
Beste HSV,
Bedankt voor de snelle reaktie.
Helaas doe ook deze code niets.
Het lijkt wel alsof de event Workbook_BeforeClose gewoon niet werkt, want andere events doen het wel.
Het is mij een raadsel.
 
Heb je het wel in ThisWorkbook gezet?
 
Dat was het probleem.
Tot nog toe heb ik alleen gewerkt met events op de tabbladen, maar nog nooit op ThisWorkbook.
Je bent nooit te dom om te leren......
Heel erg bedankt voor de oplossing.
Ik ga kijken hoe ik deze op voltooid kan zetten, want het was de eerste keer om een vraag te stellen, maar ongetwijfeld niet de laatste, gezien het resultaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan