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

"Gewoon" afsluiten niet mogelijk maken

Status
Niet open voor verdere reacties.

dirkcarel

Gebruiker
Lid geworden
18 nov 2009
Berichten
14
Is het mogelijk om de X-knop om Excel af te sluiten buiten gebruik te stellen. Ik heb een button waarmee Excel moet worden afgesloten. Als men op de X-knop klikt wil ik een boodschap tevoorschijn laten komen dat men de andere knop moet gebruiken.
Is dit mogelijk. Gr. Dirk
 
Dat kan met VBA via een Event:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

Ben je bekend met VBA?

Groeten,
Richard
 
Richard,
Ik heb onderstaande code staan. Eigenlijk wil ik dat de X-knop niets doet, als deze wordt aangeklikt en dat er een bericht verschijnt dat het alleen mogelijk is om met de "macro"-knop af te sluiten. Het is nu te rigoreus, Excel wordt nu direct afgesloten.
Gr. Dirk

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim bar As CommandBar
    For Each bar In Application.CommandBars
        bar.Enabled = True
    Next
    With Application
        .DisplayScrollBars = True
        .DisplayFormulaBar = True
        .DisplayAlerts = True
        .DisplayFullScreen = False
        .DisplayStatusBar = True
    End With
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Saved = True
Next wb
Application.Quit
End Sub
 
Test deze maar eens uit
 

Bijlagen

  • Afsluiten.xls
    26 KB · Weergaven: 77
Bijna. Nu krijg ik Excel niet meer afgesloten.
Onderstaand de code om af te sluitem met de knop. Enig idee hoe/of dit aan te passen is?
Gr. BTA

Code:
Sub Afsluiten()
Sheets("artikelen").Unprotect ("bta")
Sheets("bestellijst").Unprotect ("bta")
Sheets("toelichting").Unprotect ("bta")
    Dim Title$, Msg$, Style, Response
    Title = "Bestellijst wissen"
    Msg = "Hiermee wordt Excel DIRECT afgesloten." _
    & vbCrLf & vbCrLf & "Weet je het echt zeker??"
    Style = vbYesNo + vbDefaultButton2
    Response = MsgBox(Msg, Style, Title)
    If Response = vbNo Then Exit Sub
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Saved = True
Next wb
Application.Quit
Sheets("artikelen").Protect ("bta")
Sheets("bestellijst").Protect ("bta")
Sheets("toelichting").Protect ("bta")
End Sub
 
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If BooleanForClosing = False Then
        MsgBox "Gebruik enkel de knop Afsluiten om te eindigen"
        Cancel = True
    End If
End Sub
Deze komt in ThisWorkbook

Code:
Public BooleanForClosing As Boolean
Deze zet je bovenaan de module waar je macro Afsluiten staat

Code:
BooleanForClosing = True
Deze zet je mee in de macro Afsluiten
 
Bijna. Hij vraagt nu om wijzigingen op te slaan. En dat is iig niet de bedoeling:-(
 
Door dit (van jezelf) te gebruiken moet het lukken. Tenminste bij mij. Opslaan zonder te saven!

Code:
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Saved = True
Next wb
Application.Quit
 
Laatst bewerkt door een moderator:
Code:
ActiveWorkbook.Saved=True
 
Code:
Public BooleanForClosing As Boolean
Sub Afsluiten()
Sheets("artikelen").Unprotect ("bta")
Sheets("bestellijst").Unprotect ("bta")
Sheets("toelichting").Unprotect ("bta")
   If MsgBox("Hiermee wordt Excel DIRECT afgesloten." & vbCrLf & vbCrLf & "Weet je het echt zeker??", _
                vbYesNo + vbDefaultButton2, "Bestellijst wissen") = vbNo Then Exit Sub
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Saved = True
Next wb
BooleanForClosing = True
Application.Quit
Sheets("artikelen").Protect ("bta")
Sheets("bestellijst").Protect ("bta")
Sheets("toelichting").Protect ("bta")
End Sub
 
Helaas, pindakaas. "Hij" blijft vragen of de wijzigingen moeten worden opgeslagen:-(
 
Code:
Public BooleanForClosing As Boolean
Sub Afsluiten()
Sheets("artikelen").Unprotect ("bta")
Sheets("bestellijst").Unprotect ("bta")
Sheets("toelichting").Unprotect ("bta")
   If MsgBox("Hiermee wordt Excel DIRECT afgesloten." & vbCrLf & vbCrLf & "Weet je het echt zeker??", _
                vbYesNo + vbDefaultButton2, "Bestellijst wissen") = vbNo Then Exit Sub
Sheets("artikelen").Protect ("bta")
Sheets("bestellijst").Protect ("bta")
Sheets("toelichting").Protect ("bta")
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Saved = True
Next wb
BooleanForClosing = True
Application.Quit
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan