Using an Excel sheet for batch delete
This should do it:
Sub test()
Set fs = CreateObject("Scripting.FileSystemObject")
SourcePath = InputBox("Enter source path : ")
If SourcePath = "" Then Exit Sub
sExists:
If fs.FolderExists(SourcePath) = False Then
SourcePath = InputBox("The path " & SourcePath & " don't exists" _
& vbLf & vbLf & "Enter path : ")
GoTo sExists
End If
If Right(SourcePath, 1) < "\" Then SourcePath = SourcePath & "\"
DestPath = InputBox("Enter destination path : ")
If DestPath = "" Then Exit Sub
dExists:
If fs.FolderExists(DestPath) = False Then
DestPath = InputBox("The path " & DestPath & " don't exists" _
& vbLf & vbLf & "Enter path : ")
GoTo dExists
End If
If Right(DestPath, 1) < "\" Then DestPath = DestPath & "\"
LastRow = Range("A1").End(xlDown).Row
For r = 2 To LastRow
fs.movefile SourcePath & Cells(r, "A").Value, DestPath
Cells(r, "A").ClearContents ' Remove file from list after moving it
Next
fs.movefile fToMove, DestPath
End Sub
Regards,
Per
"Colin Hayes" skrev i meddelelsen
...
Hi Per
OK thanks for that.
It's nearly there , but remember it needs to get the file names from
column A , rather than ask for files via the directory tree.
It should ask for source folder and destination folder once at the
beginning , and then look down column A moving the file names shown in
each cell from source to destination.
It would have these steps;
A. Ask for the source directory.
B. Ask for the destination directory.
C. Lookup each filename from column A , and move them in turn until it
reaches the bottom.
Just like your delete routine , but Moving from one folder to another.
So a combination of the two routines would be best.
Can your routine be adapted to do this , please?
Thanks.
In article , Per Jessen
writes
Thanks for your reply.
Look at this:
Sub test()
Set fs = CreateObject("Scripting.FileSystemObject")
fToMove = Application.GetOpenFilename(, , "Select file to move")
DestPath = InputBox("Enter destination path : ")
dExists:
If fs.FolderExists(DestPath) = False Then
DestPath = InputBox("The path " & DestPath & " don't exists" _
& vbLf & vbLf & "Enter path : ")
GoTo dExists
End If
If Right(DestPath, 1) < "\" Then DestPath = DestPath & "\"
fs.movefile fToMove, DestPath
End Sub
Regards,
Per
"Colin Hayes" skrev i meddelelsen
...
In article , Otto Moehrbach
writes
This little macro will do that. Enter your path in the "Const" line.
HTH
Otto
Sub DeleteFiles()
Const ThePath = "C:\aaThe Folder\"
Dim rColA As Range
Dim i As Range
Set rColA = Range("A1", Range("A" & Rows.Count).End(xlUp))
For Each i In rColA
Kill ThePath & i.Value
Next i
End Sub
Hi Otto and Per
Thanks for your suggestions. Very useful , and solved my problem.
As an extension of this , could a macro be made to Move the file from
Folder A to Folder B , rather than delete it?
Perhaps with a popup requesting source and destination folders?
Thanks again
"Colin Hayes" wrote in message
...
HI All
I have an Excel worksheet with a list of file names in column A.
I'd like to use this list to look into a named directory (perhaps
built
in
to the routine , or entered via a popup) and delete files of the same
name
in turn.
Once a file is deleted , then the routine would go back to Excel and
look
up the next file name in the column for the next delete , and so on
until
it reaches the end of the list.
Can someone help with this , please?
Grateful for any advice.
Best Wishes
|