rename files in a folder

G

Guest

Hi,

I have a set of .wav files in a folder. Can some one help me with a macro
which could rename all the files in a folder.

the naming scheme should be as mentioned below

oldname : 123456_xyz
newname: 123456

i.e. the new name should only contain the first 6 first characters of the
ond name.
 
B

Bob Phillips

Dim FSO As Object

Sub ProcessFiles()
Dim i As Long
Dim sFolder As String
Dim fldr As Object
Dim Folder As Object
Dim file As Object
Dim Files As Object
Dim this As Workbook
Dim cnt As Long
Dim sName As String

Set FSO = CreateObject("Scripting.FileSystemObject")

Set this = ActiveWorkbook
sFolder = "C:\MyTest"
If sFolder <> "" Then
Set Folder = FSO.GetFolder(sFolder)

Set Files = Folder.Files
cnt = 1
For Each file In Files
If file.Type = "Microsoft Excel Worksheet" Then
sName = Replace(file.Name, ".xls", "")
' Name file.Path As Replace(file.Path, sname, Left(sname, 6))
cnt = cnt + 1
End If
Next file

End If ' sFolder <> ""

End Sub



--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
G

Guest

Hi Bob,

But as i have mentioned that I have .wav files in my folder and not excel
files.
would this code work for wav files as well?
--
Varun Nair



Bob Phillips said:
Dim FSO As Object

Sub ProcessFiles()
Dim i As Long
Dim sFolder As String
Dim fldr As Object
Dim Folder As Object
Dim file As Object
Dim Files As Object
Dim this As Workbook
Dim cnt As Long
Dim sName As String

Set FSO = CreateObject("Scripting.FileSystemObject")

Set this = ActiveWorkbook
sFolder = "C:\MyTest"
If sFolder <> "" Then
Set Folder = FSO.GetFolder(sFolder)

Set Files = Folder.Files
cnt = 1
For Each file In Files
If file.Type = "Microsoft Excel Worksheet" Then
sName = Replace(file.Name, ".xls", "")
' Name file.Path As Replace(file.Path, sname, Left(sname, 6))
cnt = cnt + 1
End If
Next file

End If ' sFolder <> ""

End Sub



--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
N

Norman Jones

Hi Varun,

As an alternative, try:

'=============>>
Public Sub Tester001()
Dim FName As String
Dim MyPath As String
Dim OldName As String
Dim NewName As String

MyPath = "C:\B\Test\" '<<==== CHANGE
FName = Dir(MyPath & "*.Wav")
Do While FName <> ""
OldName = FName
NewName = Left(OldName, 6) & ".Wav"

Name MyPath & OldName As MyPath & NewName

FName = Dir()
Loop
End Sub
'<<=============
 
G

Guest

HI norman,

I tried using your code.
but it didn't do anything.

a reminder that i am using the VB on excel. is there any .ocx that i need to
include?
--
Varun Nair



Norman Jones said:
Hi Varun,

As an alternative, try:

'=============>>
Public Sub Tester001()
Dim FName As String
Dim MyPath As String
Dim OldName As String
Dim NewName As String

MyPath = "C:\B\Test\" '<<==== CHANGE
FName = Dir(MyPath & "*.Wav")
Do While FName <> ""
OldName = FName
NewName = Left(OldName, 6) & ".Wav"

Name MyPath & OldName As MyPath & NewName

FName = Dir()
Loop
End Sub
'<<=============
 
B

Bob Phillips

Yes, of course it would, it is just a name

Change

If file.Type = "Microsoft Excel Worksheet" Then

to

If file.Type = "WAV File" Then


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

Varun Nair said:
Hi Bob,

But as i have mentioned that I have .wav files in my folder and not excel
files.
would this code work for wav files as well?
 
G

Guest

hi bob,

this code is not working on my excel !
--
Varun Nair



Bob Phillips said:
Dim FSO As Object

Sub ProcessFiles()
Dim i As Long
Dim sFolder As String
Dim fldr As Object
Dim Folder As Object
Dim file As Object
Dim Files As Object
Dim this As Workbook
Dim cnt As Long
Dim sName As String

Set FSO = CreateObject("Scripting.FileSystemObject")

Set this = ActiveWorkbook
sFolder = "C:\MyTest"
If sFolder <> "" Then
Set Folder = FSO.GetFolder(sFolder)

Set Files = Folder.Files
cnt = 1
For Each file In Files
If file.Type = "Microsoft Excel Worksheet" Then
sName = Replace(file.Name, ".xls", "")
' Name file.Path As Replace(file.Path, sname, Left(sname, 6))
cnt = cnt + 1
End If
Next file

End If ' sFolder <> ""

End Sub



--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
N

Norman Jones

Hi Varun,

The suggested code works for me without problem.

I assumed that your wav files had a .Wav extension. If the the extension is
different (or non-existant), then you will need accordingly to replace the
expression: & "*.Wav" in the line
 

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