Greetings,

I have a worksheet that will be edited by many users. In order to force the users to enable macros before working in the spreadsheet, I have created a worksheet called "START" which will be visible to the user only when macros are disabled because a macro must be run to hide it. This is written in the BeforeClose event procedure in ThisWorkbook. I also want to disable the "save" prompt because it is triggering a hangup (not related to my current problem). I have attempted to do this by setting ThisWorkbook.Saved = True. I am fine with the program closing without the user having a chance to save their work, but I want to display a message box telling them this is the case. The problem is, the code doesn't execute all 3 parts when the workbook is closed. As it is written below, the code does not unhide the "START" sheet.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

MsgBox "If you have not saved your work, it is too late! You will need to reopen the Save Log and start over. Click 'Save' before closing."

' Unhide Start page for Macro reminder
Dim ws As Worksheet

' Unhide the START worksheet
Sheets("START").Visible = xlSheetVisible

'Loop through all worksheets
For Each ws In ThisWorkbook.Worksheets

'Check each worksheet name
If ws.Name <> "START" Then

'Hide the sheet
ws.Visible = xlVeryHidden
End If

'Loop to next worksheet
Next ws

ActiveWorkbook.Saved = True

End Sub

If I remove the MsgBox, it works fine, but with no warning to the user that they have just closed without saving. If I remove 'ActiveWorkbook.Saved = True', then I'll get the message box, but then the save prompt box returns. Is there any way to have it written so that when the user clicks 'close,' the "START" page appears along with my MsgBox, and no prompt from Excel to save? I'm very new to Excel and VBA, any help would be greatly appreciated!