ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Opening a workbook if not opened, going to it if already opened (https://www.excelbanter.com/excel-programming/311360-opening-workbook-if-not-opened-going-if-already-opened.html)

neotokyo

Opening a workbook if not opened, going to it if already opened
 

Anyone know how to do this function?

Basically, if a workbook is not opened yet, then open it.
If its already opened, then go to that window.

I got this from the web, but if the workbook is already opened, i
gives me an error :
Function WorkbookOpen(WorkBookName As String) As Boolean
'Returns TRUE if the workbook is open
Dim myxl As Excel.Application

On Error Resume Next
Set myxl = GetObject(, "Excel.Application")
If Err.Number < 0 Then
Err.Clear
WorkbookOpen = False
Else
WorkbookOpen = True
End If
Set myxl = Nothing

End Function


How I call the function :
Dim strSourceFilename As String
strSourceFilename = Range("A1").Text
If Not WorkbookOpen(strSourceFilename) = False Then
Application.Workbooks.Open FileName:=strSourceFilename
End If


Thanks for any help

--
neotoky
-----------------------------------------------------------------------
neotokyo's Profile: http://www.excelforum.com/member.php...fo&userid=1389
View this thread: http://www.excelforum.com/showthread.php?threadid=26327


Tom Ogilvy

Opening a workbook if not opened, going to it if already opened
 
Dim wkbk as Workbook
On error resume next
set wkbk = Workbooks("ABC.xls")
On error goto 0
if wkbk is nothing then
set wkbk = Workbooks.Open("C:\Myfiles\ABC.xls")
End if
wkbk.Activate

--
Regards,
Tom Ogilvy


"neotokyo" wrote in message
...

Anyone know how to do this function?

Basically, if a workbook is not opened yet, then open it.
If its already opened, then go to that window.

I got this from the web, but if the workbook is already opened, it
gives me an error :
Function WorkbookOpen(WorkBookName As String) As Boolean
'Returns TRUE if the workbook is open
Dim myxl As Excel.Application

On Error Resume Next
Set myxl = GetObject(, "Excel.Application")
If Err.Number < 0 Then
Err.Clear
WorkbookOpen = False
Else
WorkbookOpen = True
End If
Set myxl = Nothing

End Function


How I call the function :
Dim strSourceFilename As String
strSourceFilename = Range("A1").Text
If Not WorkbookOpen(strSourceFilename) = False Then
Application.Workbooks.Open FileName:=strSourceFilename
End If


Thanks for any help!


--
neotokyo
------------------------------------------------------------------------
neotokyo's Profile:

http://www.excelforum.com/member.php...o&userid=13892
View this thread: http://www.excelforum.com/showthread...hreadid=263271





All times are GMT +1. The time now is 03:57 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com