ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Run Exe file (https://www.excelbanter.com/excel-programming/418930-run-exe-file.html)

Arnie

Run Exe file
 
Hi all i am trying to use a portable bit of code to run "Compiler.exe" ie
could be anywhere on users PC so i need code to find the program and run it

any help would be appreciated

Code running from command Button

cheers Arnie

joel

Run Exe file
 
Here is a pair of macros that will recursively find a file on the C: drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\", MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe" ie
could be anywhere on users PC so i need code to find the program and run it

any help would be appreciated

Code running from command Button

cheers Arnie


Arnie

Run Exe file
 
Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C: drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\", MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe" ie
could be anywhere on users PC so i need code to find the program and run it

any help would be appreciated

Code running from command Button

cheers Arnie


joel

Run Exe file
 
I haven't used this code in a while. I tried it to make sure it still
worked. If you are
getting a not getting anything returned it its for one of three reasons

1) the capitalization of the filename is different

change from
If fl.Name = MyFileName Then

to

If ucase(fl.Name = MyFileName) Then

2) the file is in a directory you don't have permission to access

3) The file doesn't exist. Make suure you are spelling the filename
correctly including spaces.
"Arnie" wrote:

Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C: drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\", MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe" ie
could be anywhere on users PC so i need code to find the program and run it

any help would be appreciated

Code running from command Button

cheers Arnie


joel

Run Exe file
 
I made a typo

from
If ucase(fl.Name = MyFileName)
to
If ucase(fl.Name) = ucase(MyFileName) then

"Joel" wrote:

I haven't used this code in a while. I tried it to make sure it still
worked. If you are
getting a not getting anything returned it its for one of three reasons

1) the capitalization of the filename is different

change from
If fl.Name = MyFileName Then

to

If ucase(fl.Name = MyFileName) Then

2) the file is in a directory you don't have permission to access

3) The file doesn't exist. Make suure you are spelling the filename
correctly including spaces.
"Arnie" wrote:

Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C: drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\", MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe" ie
could be anywhere on users PC so i need code to find the program and run it

any help would be appreciated

Code running from command Button

cheers Arnie


Steve Yandl

Run Exe file
 
Arnie,

If you know that the file 'Compiler.exe" is on the user's desktop, you can
make the path string retrieval much more efficient. Try something like what
I have between the lines below.

'----------------------------------------------------

Sub FindDesktopFile()

Dim objFSO
Dim objShell
Dim strDsk As String

' Get the path to current user desktop
Set objShell = CreateObject("Shell.Application")
Set objFolderDsk = objShell.Namespace(&H10&)
strDsk = objFolderDsk.Self.Path

' Use file system object to confirm file's presence
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDsk & "\Compiler.exe") Then
MsgBox strDsk & "\Compiler.exe"
End If

Set objFSO = Nothing
Set objFolderDsk = Nothing
Set objShell = Nothing

End Sub


'---------------------------------------------------

Steve Yandl



"Arnie" wrote in message
...
Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and
Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C:
drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\",
MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe"
ie
could be anywhere on users PC so i need code to find the program and
run it

any help would be appreciated

Code running from command Button

cheers Arnie




Arnie

Run Exe file
 
Great Steve finds it straight away

how do i get it to run when its found it?

"Steve Yandl" wrote:

Arnie,

If you know that the file 'Compiler.exe" is on the user's desktop, you can
make the path string retrieval much more efficient. Try something like what
I have between the lines below.

'----------------------------------------------------

Sub FindDesktopFile()

Dim objFSO
Dim objShell
Dim strDsk As String

' Get the path to current user desktop
Set objShell = CreateObject("Shell.Application")
Set objFolderDsk = objShell.Namespace(&H10&)
strDsk = objFolderDsk.Self.Path

' Use file system object to confirm file's presence
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDsk & "\Compiler.exe") Then
MsgBox strDsk & "\Compiler.exe"
End If

Set objFSO = Nothing
Set objFolderDsk = Nothing
Set objShell = Nothing

End Sub


'---------------------------------------------------

Steve Yandl



"Arnie" wrote in message
...
Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and
Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C:
drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\",
MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe"
ie
could be anywhere on users PC so i need code to find the program and
run it

any help would be appreciated

Code running from command Button

cheers Arnie





Arnie

Run Exe file
 
Steve its ok worked it out

ID = Shell(Root & strDsk & "\Compiler.exe", vbNormalFocus)

thanks for your help

Arnie

"Steve Yandl" wrote:

Arnie,

If you know that the file 'Compiler.exe" is on the user's desktop, you can
make the path string retrieval much more efficient. Try something like what
I have between the lines below.

'----------------------------------------------------

Sub FindDesktopFile()

Dim objFSO
Dim objShell
Dim strDsk As String

' Get the path to current user desktop
Set objShell = CreateObject("Shell.Application")
Set objFolderDsk = objShell.Namespace(&H10&)
strDsk = objFolderDsk.Self.Path

' Use file system object to confirm file's presence
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDsk & "\Compiler.exe") Then
MsgBox strDsk & "\Compiler.exe"
End If

Set objFSO = Nothing
Set objFolderDsk = Nothing
Set objShell = Nothing

End Sub


'---------------------------------------------------

Steve Yandl



"Arnie" wrote in message
...
Hi Joel thank you for being so helpful

the code brings up the message box but does not tell you where it is

i was wondering if i could use this but replacing C:\Documents and
Settings\UserName with a wild card as the program will always be on the
Desktop but UserName will always be different

ID = Shell(Root & "C:\Documents and
Settings\UserName\Desktop\Compiler.exe",
vbNormalFocus)

"Joel" wrote:

Here is a pair of macros that will recursively find a file on the C:
drive.
You could also use FileSearch but it doesn't work in Excel 2007.


Public file_loc As String
Sub findfile()
'set MyFilename and strfold as required

'file to search for
Const MyFileName = "Compiler.exe"
'directory to start searching
strFolder = "c:\"
file_loc = ""
Set fso = CreateObject _
("Scripting.FileSystemObject")
Set folder = _
fso.GetFolder(strFolder)

Call GetWorksheetsSubFolder(strFolder + "\", MyFileName)

MsgBox ("File found in folder: " & file_loc)
End Sub

Sub GetWorksheetsSubFolder(strFolder, MyFileName)
Set fso = CreateObject _
("Scripting.FileSystemObject")

Set folder = _
fso.GetFolder(strFolder)

If folder.subfolders.Count 0 Then
For Each sf In folder.subfolders
On Error GoTo 100
Call GetWorksheetsSubFolder(strFolder + sf.Name + "\",
MyFileName)
If file_loc < "" Then Exit For
100 Next sf
End If
'folder size in bytes
On Error GoTo 200
If file_loc = "" Then
For Each fl In folder.Files
If fl.Name = MyFileName Then
file_loc = folder.Name
End If
Next fl
End If
200 On Error GoTo 0

End Sub


"Arnie" wrote:

Hi all i am trying to use a portable bit of code to run "Compiler.exe"
ie
could be anywhere on users PC so i need code to find the program and
run it

any help would be appreciated

Code running from command Button

cheers Arnie






All times are GMT +1. The time now is 06:19 AM.

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