LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 22
Default Cancel = True

Apparently I haven't got something quiet right with my procedure here. It is
saving and performing as intended when doing a Save and a Save As, but is not
actually saving the workbook when going by way of Close/Yes. Code below.
This is starting to get to complicated for my green mind to pinpoint. TIA
for any clue!!!


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Set to run each time the workbook is saved
'Userform is displayed, requiring user to provide
'percent complete and if action items are open.
'Also runs CloseHideSheets procedure so that only
'"Sheet1" with the Macro Enable reminder is
'is visible the next time the workbook is opened
'if it is opened without macros enabled
ThisWorkbook.Sheets("Analysis").Activate
UserForm1.Show
Dim strSaveAs As String
Cancel = True
If SaveAsUI = True Then
'get a save as filename from the user
strSaveAs = Application.GetSaveAsFilename(Me.Name, "Excel
Files(*.xls), *.xls", 1)
If strSaveAs = "False" Then
'user cancelled the save as operation
Exit Sub
End If
End If
On Error GoTo Event_Exit
Application.ScreenUpdating = False
Application.EnableEvents = False
CloseHideSheets
If SaveAsUI = True Then
Me.SaveAs strSaveAs
Else
Me.Save
End If
Application.EnableEvents = True
OpenUnhideSheets
ThisWorkbook.Sheets("Analysis").Activate
Event_Exit:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Set to run each time the workbook is closed
'It allows the user to go back to the working
'tabs if they choose to cancel the close
On Error GoTo Event_Exit
Application.ScreenUpdating = False
Dim Msg As String
If Me.Saved = False Then
Msg = "Do you want to save the changes you made to "
Msg = Msg & Me.Name & "?"
Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
Select Case Ans
Case vbYes
Call CloseHideSheets
Me.Save
Case vbCancel
Cancel = True
Exit Sub
End Select
End If
Me.Saved = True
Event_Exit:
Application.ScreenUpdating = True
End Sub







"JustBreathe" wrote:

First of all, thanks everyone for the invaluable help you've provided me on
this message board! ...now....

code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'code to hide certain sheets
Me.Save
Cancel = True
'code to unhide certain sheets
End Sub

question: what exactly does the Cancel = True do (or not do)?
I found that when I was trying to Save As a new filename that I was not
being given the option to change the name. when I comment out the Cancel =
True line in my BeforeSave procedure I am able to do save with a new filename
when doing a Save As. I want to understand why this is so, so that I know
that I am not inadvertently causing other potential problems by removing the
Cancel = True.

TIA
Tanya (vba newbie)



 
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
why doesnt cancel=true always work? Duncan[_5_] Excel Programming 3 July 18th 06 08:48 AM
Another way to suppress print besides Cancel = True? mikeburg[_56_] Excel Programming 4 December 5th 05 02:49 PM
BeforeDoubleClick Cancel=True not working Reggie Excel Programming 1 September 20th 05 03:43 AM
Close workbook with "Cancel=TRUE" in the BeforeClose()" Wellie[_3_] Excel Programming 1 October 16th 04 09:46 PM
Setting Cancel = True in WorkbookBeforePrint Tony Excel Programming 0 December 21st 03 10:37 PM


All times are GMT +1. The time now is 12:23 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"