Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Only Workbook Open?

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only the
active workbook if there are other workbooks open. However, if the active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 363
Default Only Workbook Open?

Hi,
Try the below code.
It will check to see if any other WorkBooks are open, if there is a another open then they will
remain open and the ActiveWork book will close.
If there is No other WB opened, then Excel quits.


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim WB As Workbook
For Each WB In Application.Workbooks
Debug.Print WB.Name
If WB.Name < ThisWorkbook.Name Then
If WB.Windows(1).Visible = True Then Exit Sub
End If
Next
Sheets("Sheet1").Select
Application.Quit
End Sub


Might help you out

Corey....

"Otto Moehrbach" wrote in message
...
Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only the
active workbook if there are other workbooks open. However, if the active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Only Workbook Open?

How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only the
active workbook if there are other workbooks open. However, if the active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Only Workbook Open?

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Only Workbook Open?

Excel closed for me.

You sure you only have one open workbook.

Try adding:

msgbox application.workbooks.count

to the top of the routine.

Otto Moehrbach wrote:

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default Only Workbook Open?

Try it another way:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count < 2 Then
ActiveWorkbook.Saved = True
Application.Quit
End If
End Sub


"Otto Moehrbach" wrote:

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default Only Workbook Open?

That should be:

ThisWorkbook.Saved = True

"Otto Moehrbach" wrote:

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson




  #8   Report Post  
Posted to microsoft.public.excel.programming
JMB JMB is offline
external usenet poster
 
Posts: 2,062
Default Only Workbook Open?

Don't forget the personal.xls is included in the workbook count.

"Otto Moehrbach" wrote:

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto


--

Dave Peterson




  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default Only Workbook Open?

Yes, I meant to mention that any hidden workbooks will be in the count, so if
Excel is not closing when you think you only have one wb open, then step
through the code and see how many shows with the Workbooks.Count and if it is
more than 1, you have a hidden wb somewhere.

"JMB" wrote:

Don't forget the personal.xls is included in the workbook count.

"Otto Moehrbach" wrote:

Dave
Maybe I misunderstood your code, but I used the following exactly as
written. The result, if only the one workbook is open, is that the WB
closes and Excel just sits there, open.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If
End Sub
"Dave Peterson" wrote in message
...
How about:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Application.Workbooks.Count 1 Then
'just let the workbook close
Else
Application.Quit
End If

End Sub



Otto Moehrbach wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only
the
active workbook if there are other workbooks open. However, if the
active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the
active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook
is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto

--

Dave Peterson




  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default Only Workbook Open?

Sub wbks()
x = Workbooks.Count
MsgBox x
'Gives number or workbooks
ThisWorkbook.Saved = True
Application.Quit
'closes the active workbook and Excel. If you have other wb open, Excel
won't close.

"Otto Moehrbach" wrote:

Excel XP & Win XP
I'm helping an OP and he has come up with an interesting requirement
that I have never run into.
Using the Workbook_BeforeClose event macro, he wants to close only the
active workbook if there are other workbooks open. However, if the active
workbook is the only open workbook, he wants to close the application
(Excel) as well. The tricky part is that the code for this is in the active
workbook. Once the active workbook closes, the code stops running and
cannot check for an open workbook.
The only solution I see is to check to see if more than one workbook is
open BEFORE closing the active workbook.
My first question: How can I check to see if more than one workbook is
open?
My second question: How can I code to close Excel AFTER the workbook
containing the code is closed?
Thanks for your time. Otto





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
How to: Open closed workbook/Search data tables/Return data to open workbook Hugh Adams Excel Discussion (Misc queries) 0 August 18th 10 02:04 PM
Opening Excel, Book1 opens, remains open with other workbook open DanieB Excel Discussion (Misc queries) 0 September 3rd 09 08:23 AM
how do i open a data workbook when i open a timesheet workbook [email protected] uk Excel Discussion (Misc queries) 2 January 4th 09 04:50 PM
Open a specific workbook...find value from other open workbook and then insert cells values in cell next to it. [email protected] Excel Programming 1 May 13th 07 01:46 PM
How do you program so that Workbook B cannot be open unless Workbook A is open? Plus I need to validation Marcello do Guzman[_3_] Excel Programming 2 December 5th 04 06:50 AM


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