Backup automático de arquivos com Excel VBA
Especialista em Excel

Objetivo: Disponibilizar um arquivo Excel que realiza o backup automático de arquivos com Excel VBA.
Esta planilha foi criada pelo meu amigo Edney Nascimento, ao qual agradeço pela colaboração com o site.
O Edney já colaborou enviando mais dois arquivos:
Marcar vários filtros na tabela dinâmica automaticamente – VBA
Excel converter taxa de juros em períodos – Ano para mês, mês para dia…
Caso o leitor queira auxiliar com o crescimento da base de conhecimento da internet em Excel, além de divulgar seus trabalhos, é só enviar um comentário em qualquer página do Guia do Excel, eu leio e respondo todos os comentários que são sempre bem-vindos.
Neste artigo vamos disponibilizar uma planilha Excel que realiza o backup de arquivos, não necessariamente de Excel, copiando de uma pasta para outra.
A interface é a seguinte:
ARQUIVO: Digite aqui o nome do arquivo, inclusive a extensão do mesmo;
DIRETÓRIO DE ORIGEM: Inscreva aqui o diretório aonde o arquivo está armazenado;
DIRETÓRIO DE DESTINO: Digite a pasta aonde será salvo o arquivo, o nome do arquivo salvo será o mesmo;
STATUS: Este campo é preenchido quando o arquivo é copiado ou quando há um erro na cópia do mesmo, este tratamento de erros está em português, facilitando a correção;
TÉRMINO: Data e hora do término da cópia do arquivo, pois irá depender do tamanho do mesmo.
Ao lado da tabela estão dois botões:
GERAR BACKUP: Efetua a cópia dos arquivos que estejam com a descrição do status diferente de OK, ou seja, se houver um erro na primeira tentativa ou estiver em branco a descrição do campo status, os arquivos serão copiados;
LIMPAR: Realiza a limpeza das colunas Status e Término, para que possa ser realizado um novo backup completo dos arquivos.
Abaixo o código VBA que realiza a cópia dos arquivos e a limpeza dos mesmos, e logo abaixo o botão para o download do arquivo Excel.
Sub GerarBackup()
'Macro gravada em 11/06/2015 por Edney Nascimento
On Error Resume Next
'On Error GoTo Erro_GerarBackup
Dim Mensagem As String
Dim NomeArquivo As String, DiretorioOrigem As String, DiretorioDestino As String
Dim UltimaLinha As Long
UltimaLinha = ActiveSheet.Cells(1, 1).End(xlDown).Row
'Executa o processo para cada um dos arquivos existentes
For i = 2 To UltimaLinha
If Range("D" & i).Value "OK" Then
'Carrega as informações do arquivo a ser copiado
NomeArquivo = Cells(i, 1).Text
DiretorioOrigem = Cells(i, 2).Text & "\"
DiretorioDestino = Cells(i, 3).Text & "\"
FileCopy DiretorioOrigem & NomeArquivo, DiretorioDestino & NomeArquivo
'Tratamento de erros para verificar se a cópia do arquivo foi executada com sucesso
Select Case Err.Number
Case 0: 'OK
Cells(i, 4).Value = "OK"
Cells(i, 5).Value = Now
Case 53: 'Arquivo não encontrado
Cells(i, 4).Value = "ERRO (ARQ. NAO ENCONTRADO)"
Case 70: 'Arquivo aberto
Cells(i, 4).Value = "ERRO (ARQUIVO ABERTO)"
Case 75: 'Acesso não permitido no diretório de destino
Cells(i, 4).Value = "ERRO (ACESSO NEGADO)"
Case 76: 'Diretório não encontrado
Cells(i, 4).Value = "ERRO (PASTA NAO ENCONTRADA)"
Case Else:
Mensagem = "Arquivo: " & NomeArquivo & vbCrLf & _
"Pasta Origem: " & DiretorioOrigem & vbCrLf & _
"Pasta Destino: " & DiretorioDestino & vbCrLf & _
"Erro: " & Err.Number & " " & Err.Description
MsgBox Mensagem, vbExclamation
Cells(i, 4).Value = "ERRO"
End Select
'Zera a variável antes de iniciar a cópia do próximo arquivo
Err.Number = 0
End If
Next i
Fim:
Exit Sub
Erro_GerarBackup:
Mensagem = Err.Number & " " & Err.Description
MsgBox Mensagem
End Sub
Sub lsLimpar()
Dim lUltimaLinhaAtiva As Long
lUltimaLinhaAtiva = Worksheets("Backup").Cells(Worksheets("Backup").Rows.Count, 1).End(xlUp).Row
Range("D2:E" & lUltimaLinhaAtiva).Clear
End Sub
Abraço
Marcos Rieper
Curso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

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






