Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default How to restore a Custom menu if a user presses Cancel after selcting exit


A workbook has the subroutine attached to workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

to delete custom menu before closing the workbook.
However, if a user changes mind and presses Cancel to keep workbook
open, the custom menu is deleted anyway!

How do you solver this problem?

Thank you.
Alseikhan


--
Alseikhan
------------------------------------------------------------------------
Alseikhan's Profile: http://www.excelforum.com/member.php...o&userid=32364
View this thread: http://www.excelforum.com/showthread...hreadid=529491

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 747
Default How to restore a Custom menu if a user presses Cancel after selcti

Typically I add controls to the Worksheet Menu Bar instead of making custom
toolbars but the same holds for toolbars. I create them programmatically on
wb_open and make them Temporary. I make them invisible on wb_deactivate and
visible again on wb_activate. So when the application is closed, they are
deleted since they are Temporary. They are, of course, recreated when the
particular wb is opened.

If the user has more than one wb open then, if they activate a different wb,
the commandbar is made invisible (wb_deactivate event) so that they cannot
run a macro that's inappropriate for the other wb. They are made visible
again when the user returns to the wb (wb_activate event).

Works fine so far.

Regards,
Greg

"Alseikhan" wrote:


A workbook has the subroutine attached to workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

to delete custom menu before closing the workbook.
However, if a user changes mind and presses Cancel to keep workbook
open, the custom menu is deleted anyway!

How do you solver this problem?

Thank you.
Alseikhan


--
Alseikhan
------------------------------------------------------------------------
Alseikhan's Profile: http://www.excelforum.com/member.php...o&userid=32364
View this thread: http://www.excelforum.com/showthread...hreadid=529491


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 770
Default How to restore a Custom menu if a user presses Cancel after selcti

Alseikhan,

I should have said that Greg's method is better than my solution. My more
complicated method can be useful if your menus were built in an addin that's
opened with the workbook, but that doesn't seem to apply to what you are
doing.

Doug


"Greg Wilson" wrote in message
...
Typically I add controls to the Worksheet Menu Bar instead of making
custom
toolbars but the same holds for toolbars. I create them programmatically
on
wb_open and make them Temporary. I make them invisible on wb_deactivate
and
visible again on wb_activate. So when the application is closed, they are
deleted since they are Temporary. They are, of course, recreated when the
particular wb is opened.

If the user has more than one wb open then, if they activate a different
wb,
the commandbar is made invisible (wb_deactivate event) so that they cannot
run a macro that's inappropriate for the other wb. They are made visible
again when the user returns to the wb (wb_activate event).

Works fine so far.

Regards,
Greg

"Alseikhan" wrote:


A workbook has the subroutine attached to workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

to delete custom menu before closing the workbook.
However, if a user changes mind and presses Cancel to keep workbook
open, the custom menu is deleted anyway!

How do you solver this problem?

Thank you.
Alseikhan


--
Alseikhan
------------------------------------------------------------------------
Alseikhan's Profile:
http://www.excelforum.com/member.php...o&userid=32364
View this thread:
http://www.excelforum.com/showthread...hreadid=529491




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 770
Default How to restore a Custom menu if a user presses Cancel after selcting exit

Alseikhan,

Try something like this. It replaces Excel's prompt with a custom one, and
uses a global variable that is passed to the Deactivate event, which happens
when the workbook is really closing:

Option Explicit
Dim wb_closing As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim wb_saved As Boolean
Dim save_wb_or_cancel As VbMsgBoxResult

wb_saved = ThisWorkbook.Saved
If Not wb_saved Then
ThisWorkbook.Saved = True
save_wb_or_cancel = MsgBox(prompt:="Do you want to save changes to " &
"""" & ThisWorkbook.Name & "?""", _
Buttons:=vbExclamation + vbYesNoCancel + vbDefaultButton1,
Title:="LOOKS LIKE EXCEL")
Select Case save_wb_or_cancel
Case vbYes
With ThisWorkbook
.Save
.Close
End With
wb_closing = True
Case vbNo
ThisWorkbook.Close
wb_closing = True
Case vbCancel
Cancel = True
End Select
Else
wb_closing = True
End If

End Sub

Private Sub Workbook_Deactivate()

If wb_closing Then
MsgBox "really closing"
Call DeleteMenu
End If

End Sub

hth,

Doug


"Alseikhan" wrote
in message ...

A workbook has the subroutine attached to workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

to delete custom menu before closing the workbook.
However, if a user changes mind and presses Cancel to keep workbook
open, the custom menu is deleted anyway!

How do you solver this problem?

Thank you.
Alseikhan


--
Alseikhan
------------------------------------------------------------------------
Alseikhan's Profile:
http://www.excelforum.com/member.php...o&userid=32364
View this thread: http://www.excelforum.com/showthread...hreadid=529491



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 770
Default How to restore a Custom menu if a user presses Cancel after selcting exit

A couple of errors in the previous post. Use this instead for the
BeforeClose. Also be sure to test this to make sure I haven't made any
other mistakes, otherwise you could lose data:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim wb_saved As Boolean
Dim save_wb_or_cancel As VbMsgBoxResult

wb_saved = ThisWorkbook.Saved
If Not wb_saved Then
ThisWorkbook.Saved = True
save_wb_or_cancel = MsgBox(prompt:="Do you want to save changes to " &
"""" & ThisWorkbook.Name & "?""", _
Buttons:=vbExclamation + vbYesNoCancel + vbDefaultButton1,
Title:="LOOKS LIKE EXCEL")
Select Case save_wb_or_cancel
Case vbYes
ThisWorkbook.Save
wb_closing = True
Case vbNo
wb_closing = True
Case vbCancel
ThisWorkbook.Saved = False
Cancel = True
End Select
Else
wb_closing = True
End If

End Sub

--
Doug


"Doug Glancy" wrote in message
...
Alseikhan,

Try something like this. It replaces Excel's prompt with a custom one,
and uses a global variable that is passed to the Deactivate event, which
happens when the workbook is really closing:

Option Explicit
Dim wb_closing As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim wb_saved As Boolean
Dim save_wb_or_cancel As VbMsgBoxResult

wb_saved = ThisWorkbook.Saved
If Not wb_saved Then
ThisWorkbook.Saved = True
save_wb_or_cancel = MsgBox(prompt:="Do you want to save changes to " &
"""" & ThisWorkbook.Name & "?""", _
Buttons:=vbExclamation + vbYesNoCancel + vbDefaultButton1,
Title:="LOOKS LIKE EXCEL")
Select Case save_wb_or_cancel
Case vbYes
With ThisWorkbook
.Save
.Close
End With
wb_closing = True
Case vbNo
ThisWorkbook.Close
wb_closing = True
Case vbCancel
Cancel = True
End Select
Else
wb_closing = True
End If

End Sub

Private Sub Workbook_Deactivate()

If wb_closing Then
MsgBox "really closing"
Call DeleteMenu
End If

End Sub

hth,

Doug


"Alseikhan" wrote
in message ...

A workbook has the subroutine attached to workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

to delete custom menu before closing the workbook.
However, if a user changes mind and presses Cancel to keep workbook
open, the custom menu is deleted anyway!

How do you solver this problem?

Thank you.
Alseikhan


--
Alseikhan
------------------------------------------------------------------------
Alseikhan's Profile:
http://www.excelforum.com/member.php...o&userid=32364
View this thread:
http://www.excelforum.com/showthread...hreadid=529491







Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cancel/Exit Sub Howard Excel Discussion (Misc queries) 3 December 16th 08 09:53 PM
Cancel an application exit from VBA? helmekki[_98_] Excel Programming 3 October 28th 05 03:31 AM
Cancel Macro is user selects 'cancel' at save menu Mark Excel Programming 1 April 6th 05 05:45 PM
how to Pause a VBA procedure until user presses Enter Paul James[_6_] Excel Programming 15 June 10th 04 12:55 AM
Cancel Exit on duplicate Garry Jones Excel Programming 2 November 3rd 03 11:21 PM


All times are GMT +1. The time now is 09:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"