View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Don Guillett[_2_] Don Guillett[_2_] is offline
external usenet poster
 
Posts: 1,522
Default Checking if a workbook exists

On Oct 31, 12:07*am, GS wrote:
Pierre Leclerc used his keyboard to write :

Before I do workbooks.open "toto.xlsx" I want to check if such workbook
really exist on my disk.


How do I go about doing this?


Here's a reusable function that returns a boolean when passed a
path/filename.

Function bFileExists(Filename As String) As Boolean
' Checks if a file exists in the specified path
' Arguments: * *fileName * *The fullname of the file
' Returns: * * *TRUE if the file exists

* On Error Resume Next
* bFileExists = (Dir$(Filename) < "")
' *bFileExists = (FileLen(Filename) < 0) '//optional method
End Function

* Example use:
* If bFileExists("C:\MyDocuments\toto.xlsx") Then...

Here's another reusable function to test if the file is already open.

Function bBookIsOpen(wbkName) As Boolean
' Checks if a specified workbook is open.
' Arguments: * *wbkName * The name of the workbook
' Returns: * * *True if the workbook is open

* Dim X As Workbook
* On Error Resume Next
* Set X = Workbooks(wbkName)
* bBookIsOpen = (Err = 0)
End Function

* Example use:
* If bBookIsOpen("toto.xlsx") then workbooks("toto.xlsx").Activate

HTH

--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc

============
This is one I use that is called from a double click event where the
filename is typed into a cell.
If file is open it is activated. If not, it is opened.

Sub GetWorkbook()If ActiveCell.Value = "" Then Exit Subworkbookname =
ActiveCell.ValueOn Error GoTo OpenWorkbookWindows(workbookname &
".xls").ActivateExit SubOpenWorkbook:Workbooks.Open(workbookname &
".xls").RunAutoMacros xlAutoOpenEnd Sub