Mover e Renomear Arquivos Excel VBA
Especialista em Excel

Mover e Renomear Arquivos Excel VBA
Neste artigo você aprenderá a como mover e renomear arquivos em massa utilizando Excel e VBA com um exemplo prático com código comentado e download do arquivo pronto para uso.
Como mover e renomear arquivos Excel VBA
Com VBA você pode automatizar muitas tarefas no Excel.
No nosso exemplo de solução você poderá renomear e mover arquivos em massa usando o Excel e para pastas e nomes diferentes para cada linha.
O código para mover e renomear um arquivo em Excel é o seguinte
Name "C:\Origem\Arquivo1.txt" As "C:\Destino\Renomeado1.txt"
A função Name no Excel permite que sejam movidos arquivos de uma pasta para outra, inclusive renomeando.
No entanto ela tem algumas restrições:
- Esta função não serve apenas para renomear arquivos, mas também pastas. Mas só pode renomear pastas se estiver dentro de uma mesma unidade.
- O arquivo sendo movido deve estar fechado, senão ocorrerá um erro.
- A função não cria pastas de destino. Para isso use este código: https://www.guiadoexcel.com.br/criar-pastas-automaticamente-com-vba/
Mover e renomear arquivos em massa no Excel
Usando o procedimento Name criei o seguinte código que realiza a movimentação e/ou renomeação de arquivos em massa:

Public Sub lsAcaoMover()
lsMoverArquivoRenomear 1, 2
End Sub
Public Sub lsAcaoDesfazer()
lsMoverArquivoRenomear 2, 1
End Sub
'Os parâmetros indicam a ordem das colunas de origem e destino
Private Sub lsMoverArquivoRenomear(ByVal lColOrigem As Integer, ByVal lColDestino As Integer)
On Error GoTo TratarErro
Dim lUltimaLinhaAtiva As Long
Dim lRng As Range
Dim i As Long
'Última linha da lista
lUltimaLinhaAtiva = Arquivos.Cells(Arquivos.Rows.Count, 2).End(xlUp).Row
'Range de dados com os arquivos na variável
Set lRng = Arquivos.Range("B9:C" & lUltimaLinhaAtiva)
'Loop para renomear os arquivos um a um
For i = 1 To lRng.Rows.Count
Name lRng(i, lColOrigem).Value As lRng(i, lColDestino).Value
Next i
MsgBox "Arquivo movidos e renomeados com êxito!"
Sair:
Exit Sub
TratarErro:
If Err.Number = 53 Then
MsgBox "Arquivo de origem não localizado", vbCritical, "Atenção"
Else
If Err.Number = 58 Then
MsgBox "O arquivo já existe", vbCritical, "Atenção"
Else
MsgBox "Erro: " & Err.Number & "-" & Err.Description
End If
End If
GoTo Sair
End Sub
O código acima contém três partes.
A parte principal é lsMoverArquivoRenomear aonde você tem um procedimento que recebe dois parâmetros:
lColOrigem: 1 ou 2. Se origem for igual a um, destino tem que ser 2. Este campo indica a ordem que serão realizadas as movimentações e renomeações dos arquivos, permitindo desfazer apenas mudando de 1 para 2. O col origem é para indicar a coluna de origem.
lColDestino: 1 ou 2. Se destino for igual a um, destino tem que ser 1. Da mesma forma que a lColOrigem indica a origem o lColDestino indica a coluna de destino.
Desta forma implementamos os dois seguintes procedimentos:
lsAcaoMover: Move e renomeia os arquivos que estão na coluna Arquivo de origem para os que estão na coluna Arquivo de destino.
lsAcaoDesfazer: Desfaz o processo, movendo e renomeando os arquivos que estão na coluna de destino para o nome e caminho da coluna de origem.
Download
Realize o download do arquivo deste exemplo e da vídeo-aula acima neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90





