LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default STOP close button on another workbook


"noname" wrote in message
...
On Nov 19, 12:13 am, noname wrote:
On Nov 18, 4:08 pm, "Peter T" <peter_t@discussions wrote:

The simplest way is as Malik suggested, though you need to change the
Cancel
argument to True if you want to abort the close.


You can also control Close of some or all workbooks from within your
workbook1, eg all workboooks whose name starts with [say] "myData".


In workbook1 add a class module and rename it to clsAppEvents, and the
following in the class and a normal module as indicated


'' code in class named clsAppEvents


Public WithEvents xlApp As Excel.Application


Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
Const cNAME As String = "book2" ' << CHANGE


If Left$(LCase$(Wb.Name), Len(cNAME)) = cNAME Then
If MsgBox("Sure you want to close " & Wb.Name & " ?", _
vbYesNo Or vbQuestion) < vbYes Then
Cancel = True
End If
End If


End Sub


''' end class clsAppEvents


''' code in a normal module
Private clsApp As clsAppEvents


Sub StartAppEvents()
' call from say thisworkbook's open event


Set clsApp = New clsAppEvents
Set clsApp.xlApp = Application


End Sub


''' end normal module


Run StartAppEvents to start trapping application level events, such as
workbook close events


Regards,
Peter T


"noname" wrote in message


...


Hi,


I have 2 workbooks viz workbook1 and workbook2.


I have code running ONLY in workbook1 and workbook2 is just any
workbook opened by workbook1, which contains data on which the
workbook1 works on.


At any instance, if i close workbook2 from the Close "X" button or
using the file close menu, the code in workbook1 should be able to
detect the change and STOP workbook2 from closing and instead present
a "CLOSE WORKBOOK2 - Yes/No" message box.


I need some kind of API or handle which will detect/grab the closing
of workbook2 and present the message box.


Is this possible?


---------------------------------------------------------------------

Hi Peter.

Your code doesn't seem to work. Only once (first run) it seemed to
trigger, but gave an error on "cNAME" with error message "You need to
define a constant."

On subsequent runs, when i try to close the Book2.xls file, it closes
without giving message box.

Is there some problem with WithEvents ????


-----------------------------------------------------------------------

Ok. I mistakenly had changed the "book2" to "Book2" and overlooked the
LCase function.

Works now.

My Changes:
------------------
In ThisWorkbook:

Private Sub Workbook_Open()
StartAppEvents
End Sub


In Module1:
----------------

Public clsApp As clsAppEvents
Public sName As String

Sub StartAppEvents()
' call from say thisworkbook's open event

Set clsApp = New clsAppEvents
Set clsApp.xlApp = Application
End Sub

Sub OpenWb()
sName = Workbooks.Add.Name
End Sub


In Class Module clsAppEvents:
--------------------------------------------

Public WithEvents xlApp As Excel.Application
Public cNAME As String

Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
'Const cNAME As String = "book2" ' << CHANGE
cNAME = sName

If Left$(CStr(Wb.Name), Len(cNAME)) = cNAME Then
If MsgBox("Sure you want to close " & Wb.Name & " ?", _
vbYesNo Or vbQuestion) < vbYes Then
Cancel = True
End If
End If

End Sub
----------------------------------------

Looks like you can get rid of cName entirely, and simply

If Left$(CStr(Wb.Name), Len(sName)) = sName Then

where sName is public in the normal module

Regards,
Peter T




 
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
Can I stop the close method in an auto close macro Paul Excel Programming 2 November 17th 06 02:48 PM
close workbook without closing excel and stop recursive function chris Excel Discussion (Misc queries) 3 July 10th 06 08:23 PM
Any vba code to disable only close button in Excel workbook, please? Bon Excel Programming 1 May 16th 06 08:18 PM
Stop Command Button being copied to new Workbook Ledge Excel Programming 1 March 31st 06 04:49 PM
Can the X to Close button on a workbook be disabled? Eric Excel Programming 1 April 19th 04 10:40 PM


All times are GMT +1. The time now is 02:47 AM.

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"