Renomear Arquivos conservando nomes
Enviado: Sáb Fev 08, 2020 11:53 pm
Pessoal, esse código retirei do site "Guiadoexcel", mas tentando tirar uma dúvida eles me informaram que não possuem mais fórum, então..
Quero renomear os arquivos da pasta Temp. Acontece que quero que os nomes originais permaneçam e seja acrescentado apenas o texto "ordem 0 -" nates do nome existente.
Suponha que o nome de dois arquivos dessa pasta seja "Carta Cobrança.pdf" e "Ofício.pdf"
o código deverá renomear como: "Ordem 01 - Carta Cobrnança.pdf" e Ordem 02 - Ofício.pdf"
segue o código:
Public Sub lsSelecionaArquivo()
Dim Caminho As String
Dim NomeBase As String
Dim NomeAntigo As String
Dim MyFolder, MyFile, NewName As String, i As Integer
MyFolder = "c:\TEMP"
MyFile = Dir(MyFolder & "*.*")
Caminho = InputBox("Informe o local dos arquivos a serem renomeados:", "Pasta", "C:\TEMP")
NomeBase = InputBox("Informe o local dos arquivos a serem renomeados:", "Renomear", "")
'Chama a fun??o para renomear os arquivos
lsRenomearArquivos Caminho, NomeBase, NomeAntigo
End Sub
'Fun??o que renomea os arquivos
Public Sub lsRenomearArquivos(Caminho As String, NomeBase As String, NomeAntigo As String)
Dim FSO As Object, Pasta As Object, Arquivo As Object, Arquivos As Object
Dim Linha As Long
Dim lSeq As Long
Dim lNovoNome As String
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(Caminho) Then
MsgBox "A pasta '" & Caminho & "' n?o existe.", vbCritical, "Erro"
Exit Sub
End If
lSeq = 1
Set Pasta = FSO.GetFolder(Caminho)
Set Arquivos = Pasta.Files
Cells(1, 1) = "De"
Cells(1, 2) = "Para"
Linha = 2
For Each Arquivo In Arquivos
i = InStr(1, MyFile, ".", 1)
Cells(Linha, 1) = UCase$(Arquivo.Path)
lNovoNome = Caminho & "\" & NomeBase & lSeq & "-" & NomeAntigo & Right(Arquivo, 4)
Name Arquivo.Path As lNovoNome
Cells(Linha, 2) = lNovoNome
lSeq = lSeq + 1
Linha = Linha + 1
Next
End Sub
Quero renomear os arquivos da pasta Temp. Acontece que quero que os nomes originais permaneçam e seja acrescentado apenas o texto "ordem 0 -" nates do nome existente.
Suponha que o nome de dois arquivos dessa pasta seja "Carta Cobrança.pdf" e "Ofício.pdf"
o código deverá renomear como: "Ordem 01 - Carta Cobrnança.pdf" e Ordem 02 - Ofício.pdf"
segue o código:
Public Sub lsSelecionaArquivo()
Dim Caminho As String
Dim NomeBase As String
Dim NomeAntigo As String
Dim MyFolder, MyFile, NewName As String, i As Integer
MyFolder = "c:\TEMP"
MyFile = Dir(MyFolder & "*.*")
Caminho = InputBox("Informe o local dos arquivos a serem renomeados:", "Pasta", "C:\TEMP")
NomeBase = InputBox("Informe o local dos arquivos a serem renomeados:", "Renomear", "")
'Chama a fun??o para renomear os arquivos
lsRenomearArquivos Caminho, NomeBase, NomeAntigo
End Sub
'Fun??o que renomea os arquivos
Public Sub lsRenomearArquivos(Caminho As String, NomeBase As String, NomeAntigo As String)
Dim FSO As Object, Pasta As Object, Arquivo As Object, Arquivos As Object
Dim Linha As Long
Dim lSeq As Long
Dim lNovoNome As String
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(Caminho) Then
MsgBox "A pasta '" & Caminho & "' n?o existe.", vbCritical, "Erro"
Exit Sub
End If
lSeq = 1
Set Pasta = FSO.GetFolder(Caminho)
Set Arquivos = Pasta.Files
Cells(1, 1) = "De"
Cells(1, 2) = "Para"
Linha = 2
For Each Arquivo In Arquivos
i = InStr(1, MyFile, ".", 1)
Cells(Linha, 1) = UCase$(Arquivo.Path)
lNovoNome = Caminho & "\" & NomeBase & lSeq & "-" & NomeAntigo & Right(Arquivo, 4)
Name Arquivo.Path As lNovoNome
Cells(Linha, 2) = lNovoNome
lSeq = lSeq + 1
Linha = Linha + 1
Next
End Sub