View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Check for other open workbooks

Option Explicit
Sub test()

If Application.Workbooks.Count = 1 Then
'save this workbook with the code
'ThisWorkbook.Save
'or
'or just lie to excel so the user doesn't get a prompt!
ThisWorkbook.Saved = True

'no matter what, quit excel
Application.Quit 'which closes the workbook, too.
End If

End Sub

=========
I don't know what you're doing, but I've never understood how a developer could
guess whether an open workbook should be saved when it's closed.

Either choice could cause a catastrophe -- closing the file without saving may
lose hours of work and saving the file could mean that the test changes that
should have been discarded are now there in place of the real data!



ordnance1 wrote:

Thanks

here is my test code based on your reply: But I get an Invalid use of
Property error and it highlights .Count

Sub test()

Application.Workbooks.Count

If Application.Workbooks.Count = 0 Then

Application.Quit
End

End If

ThisWorkbook.Close False

End Sub

"Gord Dibben" <gorddibbATshawDOTca wrote in message
...
Application.Workbooks.Count

If more than 1 then close current WB only

If only 1 then close WB and Application.Quit


Gord Dibben MS Excel MVP

On Wed, 28 Apr 2010 14:57:10 -0700, "ordnance1"
wrote:

Thanks.

That will close the active workbook but I need to close Excel only if
there
are no other workbooks open.

"Suri" wrote in message
...
On Apr 28, 10:30 pm, "ordnance1" wrote:
I was using the line below at the end of my code and all was well.
Until
someone had other Excel workbooks open (besides the one I had created)
and
the code ran doing what it was supposed to do and closed excel
completely. I
do want the Excel to close down, but only if my workbook is the only
workbook open.

So is there any way to amend what I have to check for other open
workbooks,
and if there are any open the just close my workbook only?

Application.Quit

Try
Application.ActiveWorkbook.Close(SaveChanges:=Fals e)



--

Dave Peterson