Open folder with code

D

Damien

I need a coding solution to the following: I have a command button on a sheet
which is to open a Windows Explorer Directory. I have previously used
hyperlinks to open and show the user with the following code (with button).

Range("V8").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Range("A1").Select
Application.ScreenUpdating = False

I was wondering if there is a better way to do without having the hyperlink.
 
N

NickHK

Damien,
Here's one way:
Private Sub CommandButton2_Click()
Dim SysRoot As String
SysRoot = Split(Environ(20), "=")(1)
Shell SysRoot & "\explorer.exe /e, G:", vbNormalFocus
End Sub

NickHK

Damien said:
I need a coding solution to the following: I have a command button on a sheet
which is to open a Windows Explorer Directory. I have previously used
hyperlinks to open and show the user with the following code (with button).

Range("V8").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Range("A1").Select
Application.ScreenUpdating = False

I was wondering if there is a better way to do without having the
hyperlink.
 
D

Damien

Thanks Nick, I will try it out, I suppose my other alternative is to
dynamically change the hyperlink via a selection value from a combo box. My
reasoning is that the user may wish to see a particular file belonging to a
project name located in the combo box. Is that at all possible?

Cheers
 
N

NickHK

Damien,
Just build the shell string from a variable or range value. e.g.

Private Sub CommandButton2_Click()
Dim SysRoot As String
Dim FilePath as String

SysRoot = Split(Environ(20), "=")(1)
FilePath = Range("a1").Text 'Or cboFile.Text
'Assumes FilePath is the full path to the file
Shell SysRoot & "\explorer.exe /e, " & FilePath, vbNormalFocus
End Sub

You should add some error trapping and/or checking that FilePath is valid.

NickHK
 
C

Chip Pearson

SysRoot = Split(Environ(20), "=")(1)

You can't rely on the system root folder being the 20th item in
the Environment variables. On my machine, Environ(20) is the
Processor Identifier. Instead, use

SysRoot = Environ("SystemRoot")



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
D

Damien

Chip you are sheer genius. > SysRoot = Environ("SystemRoot") done the trick
perfectly, Cheers Guys, D.
 

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