Getting a String Path from a browser...

J

Juan Sanchez

Hi all...

Is there a way in VBA to get a path in string format out
of a browser dialog box?... similar to an inputbox that
includes a *browse* button???

Any help is greatly appreciated...

Regards
Juan
 
A

Andy Wiggins

Try this:

''
***************************************************************************
'' Purpose : Obtain a directory
'' Written : 25-Mar-2003 by Andy Wiggins, Byg Software Limited
''
Function GetDirectory()
GetDirectory = Application.GetSaveAsFilename(InitialFilename:="Press
'Save'", Title:="Select a directory and press the 'Save' button")
End Function

--
Regards
Andy Wiggins
www.BygSoftware.com
Home of "Save and BackUp",
"The Excel Auditor" and "Byg Tools for VBA"
 
B

Bob Phillips

Take a look at the GetOpenFileName method.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
J

Juan Sanchez

Bob/Andy

Thanks!
Both of your suggestions work great, exept that i need to
get a file selected at the end... It does not allow me to
select a folder. I found sort of what I'm looking for here:

http://support.microsoft.com/default.aspx?scid=kb;es;550902

its in spanish, but the code works fine... it messes with
dll's functions and custom types and some other stuff I
don't understand and have never used...

Simply using the code works great but I don't like to use
things I don't understand... I never know when they'll
fail...

If you know of something simpler to do the same I would
appreciate it...

Regards
JS
 
N

Norman Jones

Hi Juan,

I think you will find that Bob's suggestion does what you want.

For example, the following allows you to browse for a folder and open a
selected file:

Sub Test()
Dim fname As Variant

fname = Application.GetOpenFilename

Workbooks.Open fname

End Sub
 
J

Juan Sanchez

Thanks Norman, I re-read my own post and found that it was
a confusing one and does not represent what I'm looking
for... Bob's, Andy's and your own suggestions finish in
selecting a FILE, I do not want to retreive a FILE I want
to retreive just a FOLDER where I will later on the sub
save something...

I hope I have explained myself... cheers Juan
 
N

Norman Jones

Hi Juan,

In that case, try:

Sub Test9a()
Dim fname As Variant
Dim dirName As String

fname = Application.GetOpenFilename

Debug.Print InStrRev(fname, "\")
dirName = Left(fname, InStrRev(fname, "\"))
Debug.Print dirName

End Sub
 
B

Bob Phillips

Juan,

The GetOpen method does allow you to select a folder, but not just a folder.
Is that what you mean? If so, I would have given you very similar code to
that article. Don't worry it won't break.

If you have XL2002 or later, there is a folder browser dialog.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
J

Juan Sanchez

Bob...

Yes, that is what I ment. Thanks alot... I am using it...
actually I wanted it for an Outlook macro, and it is
working fine... If you use outlook you'll know the pain of
detaching various attachments... like when someone sends
you a bunch of pictures, I have overcome that... I posted
in the outlook group but is not as attended as this one
and I though that VBA is VBA and somethings can work on
any program... Thanks!

I use XL2000 in the office that is where I really need the
macros, but have XP at Home, is the folder dialog you
mention shorter and simpler that the one on the article?
can you tell me where to look so that I learn how to code
it?... thanks in advance...

Juan
 
B

Bob Phillips

Juan,

Much shorter, much simpler.

I don't use 2002 myself, so you may need to play with this, but this is
basically it

With Application.FileDialog(msoFileDialogFolderPicker)
.Show

MsgBox .SelectedItems(1)

End With

Look up FileDialog in the VBA help

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
Top