Opening file by partial name in same folder as master file

S

shiloh13

Please Help!!

I have a master file called "All Reports.xls" that opens up various Reports
files(Ex: ABC_G016_GPUS.xls, BCD_G027_GPUS.xls, JKL_G034_GPUS.xls). The
Report files are in the same network folder as the master file and are
updated frequently. The Report files also have names that constantly change
when they are updated. The only part of the filename that does not change
begins with "G" followed by 3 numbers. By reading previous posts, I was able
to figure out how to open the "G016" Report file with the code below.

Workbooks.Open ActiveWorkbook.Path & "ABC_G016_GPUS.xls"

How do I open the file by only the "G016" part of the filename? I tried the
code below, but it did not work:

Workbooks.Open ActiveWorkbook.Path & "*" & G016 & "*.xls"

I appreciate your help!!
 
G

Gary Keramidas

maybe something like this:

Sub test()
Dim FileToOpen As String

FileToOpen = Dir(ActiveWorkbook.Path & "*" & "G016" & "*.xls")
If FileToOpen <> "" Then
Workbooks.Open FileToOpen
End If

End Sub
 
R

Rick Rothstein

Workbooks.Open FileToOpen

The above line from your code should be this...

Workbooks.Open ActiveWorkbook.Path & FileToOpen

Since the Dir function returns only the file's name (without the path
associated with it).
 
G

Gary Keramidas

thanks

--


Gary Keramidas
Excel 2003


Rick Rothstein said:
The above line from your code should be this...

Workbooks.Open ActiveWorkbook.Path & FileToOpen

Since the Dir function returns only the file's name (without the path
associated with it).
 
O

OssieMac

I think that the backslash should also be included in both lines. Seems to
be OK without if the current default directory is also the activeworkbook
directory but can one be sure of that.

Sub test()

Dim FileToOpen As String

FileToOpen = Dir(ActiveWorkbook.Path & "\" & "*" & "G016" & "*.xls")

If FileToOpen <> "" Then
Workbooks.Open ActiveWorkbook.Path & "\" & FileToOpen
End If

End Sub
 
R

Rick Rothstein

I don't think you can just add the backslash like that because if it is not
needed then I think it will screw up the path (you would have two
backslashes next to each other with nothing between them). To handle the
situation you are describing would need code something like this I think
(using your code snippet as a base)...

Sub test()
Dim FileToOpen As String, Path As String

Path = ActiveWorkbook.Path
If Right(Path, 1) <> "\" Then Path = Path & "\"
FileToOpen = Dir(Path & "*" & "G016" & "*.xls")

If FileToOpen <> "" Then
Workbooks.Open Path & FileToOpen
End If
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top