Change name of files in a folder

G

Guest

Hi to all
I am able to copy files into a folder using Scripting.FileSystemObject.
Once in the new folder I would like to change their name to reflect the new
month.
I have tried:
Const Dest = "C:\Mis documentos\12 December 2005"
Dim FSO As Object
Dim f, f1, fc
Set f = FSO.GetFolder(Dest)

For Each f1 In f.Files
Name f1.Path As Mid(f1.Name, 1, (Len(f1.Name) - 9)) & _
Format(DateSerial(Year(Date), Month(Date) - 1, 1), "yyyy-mm")
Next f1
And I have also tried
Dim wkbFolder As Application
Dim wkbSource As Workbook
Set wkbFolder.Path = "C:\Mis documentos\12 December 2005"
Set wkbSource = Application.ActiveWorkbook
For Each wkbSource In wkbFolder.Path
wkbSource.Name = Mid(wkbSource.Name, 1, (Len(wkbSource.Name) - 9)) & _
Format(DateSerial(Year(Date), Month(Date) - 1, 1), "yyyy-mm")
Next
Needless they don´t work
Can someone help? It would be appreciated.
 
D

Don Guillett

try this without copying first. It will just move and rename.

Sub movefile()
OldName = "C:\oldfoldername\oldfilename.xls"
NewName = "C:\newfoldername\newfilename.xls"
Name OldName As NewName
End Sub
 
G

Guest

Dim f as String, s as String
Const Dest = "C:\Mis documentos\12 December 2005\"
f = dir(Dest & "*.*")
do while f <> ""
s = Mid(f, 1, (Len(f) - 9)) & _
Format(DateSerial(Year(Date), Month(Date) - 1, 1), "yyyy-mm")
Name Dest & f, Dest & s
f = dir()
Loop

I don't know what your filenames look like, so I am not sure what extensions
you have or how you are accounting for the extension in your code above. You
take the whole file name except for the right most 9 characters and you
replace those with 7 characters. So you will have to work that out.
 
G

Guest

Many thanks Tom for your answer
However when I try to use it gets stuck on the code line
Name Dest & f, Dest & s(Apparently needs an "As" instead of",")
Thus I had to change to the following:
Name Dest & f As Dest & s
It Didn´t work. then I tried:
Name f As s
It Didn´t work. then I tried:
Name f As Dir(Dest & s)
It didn´t work
The message keeps on saying that it cannot find the root directory access.
Any ideas?
Also what is the point of f= Dir() at the end of loop.
If you can help it would appreciated
 

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