View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Ivan F Moala[_26_] Ivan F Moala[_26_] is offline
external usenet poster
 
Posts: 1
Default Is it possible to run DOS commands in Excel?


I took it you meant me as you quoted my post ??

Myrna Larson Wrote:[color=blue]
Hi, Ivan:

My comment was intended for the OP. I don't think that was you, wa
it?



On Tue, 12 Oct 2004 21:19:02 -0500, Ivan F Moala
wrote:


Yes, :) I know see No3 in my post

Myrna Larson Wrote:
VBA also has a FileCopy statement. No need to use the File System
Object.


On Tue, 12 Oct 2004 04:27:24 -0500, Ivan F Moala
wrote:


Ah, yes you are correct :)

You can use the FileSystemObject

No need to shell out to Dos

'// You can either
'// 1) Set a reference to the [Microsoft Scripting Runtime]
FileSystemObject.CopyFile "c:\mydocuments\My.txt",
"c:\mydocuments\MyNew.txt"

'// OR 2) create the reference via Late Binding
Dim Fso As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Fso.CopyFile "c:\mydocuments\My.txt", "c:\mydocuments\MyNew.txt"


'// OR 3) Use just use Native VBA to copy
FileCopy "c:\mydocuments\My.txt", "c:\mydocuments\MyNew.txt"

If you really need to Shell out to Dos using core Dos command

such
as
Copy then you need to use the c switch together
with the command.com eg
Shell "command.com /c MD C:\Amydir C:\Amydir", vbNormalFocus

If running it asynchronously is a problem then use the Windows
Scripting Host object model.

A method exposed by this library lets you to run a file,
and specify whether you want to wait for its termination.
To use the following code snippet you must add a reference
to Windows Scripting Host Object model in the "References " dialog
window.
The method you're looking for is the Run method of the
IWshShell_Class
object.
Its first argument is the file to run, the second specifies the
styles
of the
application's window and the last is a Boolean value that tells
whether
you
want to wait for the program termination. Here's a function that
contains all
the necessary code:

Sub RunAndWait(ByVal sFile As String)
Dim WSHShell As New IWshShell_Class
WSHShell.Run sFile, , True
End Sub

'To test this function, write the following code in your form
'(it assumes that Notepad is in your system path):

Sub Tester()
RunAndWait "notepad.exe"
MsgBox "Back to your application!"
End Sub



Rob van Gelder Wrote:
I thought OP was after Copy, not Rename.

--
Rob van Gelder - http://www.vangelder.co.nz/excel


"Ivan F Moala" wrot

in
message
...

Hi hce

Look up help for [Name Statement]

From help

Name Statement Example
This example uses the Name statement to rename a file. For
purposes
of
this example, assume that the directories or folders that are
specified
already exist. On the Macintosh, “HD:” is the default driv

name
and
portions of the pathname are separated by colons instead of
backslashes.

Dim OldName, NewName
OldName = "OLDFILE": NewName = "NEWFILE" ' Define fil

names.
Name OldName As NewName ' Rename file.

OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"
Name OldName As NewName ' Move and rename file.


--
Ivan F Moal

-----------------------------------------------------------------------
Ivan F Moala's Profile: http://www.excelforum.com/member.php...nfo&userid=195
View this thread: http://www.excelforum.com/showthread...hreadid=268387