Removing an absolute value. Folder path.

I the following code I am checking to see if a specific file is open, if it is? Close it, if not? carry on.
Ln7 concerns me because it is an absolute folder location.  Is there a way to write that part out?
I have another procedure that uses that file and it needs to be closed in order to process correctly.
Please advise and thanks.

PS:  Will consider other re-writes too.  It shows my lack of VBA writing skills.


Sub IsSalesOrderDownloadTemplateOpen()
 
 Dim I As Integer
 Dim bIsOpened
    For I = 1 To Application.Workbooks.Count
        If (Application.Workbooks(I).Name = "SALESORDERDOWNLOAD.XML" _
            And Application.Workbooks(I).Path = "C:\_SAP\Extracts\SalesOrd") Then
            bIsOpened = True
            Exit For
        End If
    Next I

 
'  For i = 1 To Application.Workbooks.Count
'   bIsOpened = bIsOpened Or (Application.Workbooks(i).Name = "SALESORDERDOWNLOAD.XML" _
'   And Application.Workbooks(i).Path = "C:\_SAP\Extracts\SalesOrd")
'  Next i

  If bIsOpened Then
    MsgBox "Target save file is open, Closing file so process can use it.", vbOKOnly + vbInformation, "Cannot have: C:\_SAP\EXTRACTS\SALESORD\SALESORDERDOWNLOAD.xml open and run this process.  Close it and try again."
    Application.DisplayAlerts = False
    Windows("SALESORDERDOWNLOAD.XML").Activate
    ActiveWorkbook.Close
    bIsOpened = False
    Application.DisplayAlerts = True
    GoTo 100  'Removed Exit Sub
  Else
   GoTo 100
  End If
100  'Continue knowing that file is not open.
End Sub

Open in new window

RWayneHAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

RWayneHAuthor Commented:
I may have to leave that in.  I am assuming that I can use a network path like:
\\na\Global-Groups\etc.\etc.\   or even better a sharepoint site?:  
http://departments.haworthinc.com/PLM/data/Lists/IPL%20Data/DispForm.aspx?ID=38&Source=http%3A%2F%2Fdepartments%2Ehaworthinc%2Ecom%2FPLM%2Fdata%2FLists%2FIPL%2520Data%2FIPL%2520data%2Easpx

I do not know how to point to a specific sharepoint file... and how to add the code if a user does not even have access to the particular site.   I am good with leaving it in, and need to change that Ln7 to point to sharepoint location.
Rob HensonFinance AnalystCommented:
If a Workbook is open then you may be able to use the Windows.Activate(FileName) command to show it.

I believe this would only need the filename.

Therefore, if the file is not open the above command would generate an error. An error handler would then skip the step or carry on with the close.

Thanks
Rob H
RWayneHAuthor Commented:
So what you are saying is it would be something like:?

If  Windows("SALESORDERDOWNLOAD.XML").Activate = False
    continue
End if

If  Windows("SALESORDERDOWNLOAD.XML").Activate = True
   Close it without saving changes.
   Continue
End if
CompTIA Security+

Learn the essential functions of CompTIA Security+, which establishes the core knowledge required of any cybersecurity role and leads professionals into intermediate-level cybersecurity jobs.

Robberbaron (robr)Commented:
my versions of RobH idea...

dim OrderFileName as string, isOpen as boolean
OrderSheetName = "SALESORDERDOWNLOAD.XML"

on error resume next  '<<turn on error trap
isOpen = false
Windows(OrderSheetName ).Activate
if Err.Number = 0 then
   isOpen=True
 else
  isOpen = False
end if
on error goto 0  '<<turn off error trap

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
RWayneHAuthor Commented:
How would we add a if true, close file without saving changes...  I do not want alerts to stop and ask user if it is ok ....  Looks like this will work much better than the original one I had.  Thanks!!
Robberbaron (robr)Commented:
if IsOpen then
   ActiveWorkbook.Close SaveChanges:=False
end if

Open in new window

RWayneHAuthor Commented:
Thanks for the help.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.