No Excel 2007, na caixa Salvar como, há uma opção para 'Criar um backup', que simplesmente faz o backup do arquivo sempre que ele é salvo. Infelizmente, ele faz o backup do arquivo no mesmo diretório que o original.
Existe uma maneira simples de alterar esse diretório para outra unidade / pasta? Eu brinquei com macros para fazer isso, criando:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Saves the current file to a backup folder and the default folder
'Note that any backup is overwritten
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:="T:\TEC_SERV\Backup file folder - DO NOT DELETE\" & _
ActiveWorkbook.Name
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
Isso cria um backup do arquivo ok na primeira vez, no entanto, se isso for tentado novamente, obtenho:
Erro em tempo de execução '1004';
O Microsoft Office Excel não pode acessar o arquivo 'T: \ TEC_SERV \ Backup file folder - NÃO DELETE \ Test Macro Sheet.xlsm. Há vários motivos possíveis:
O nome ou o caminho do arquivo não existe.
O arquivo está sendo usado por outro programa.
A pasta de trabalho que você está tentando salvar tem o mesmo nome de um ...
Sei que o caminho está correto, também sei que o arquivo não está aberto em nenhum outro lugar. A pasta de trabalho tem o mesmo nome que estou tentando salvar, mas deve ser substituída.
Eu postei a pergunta sobre a codificação no Stack Overflow, mas me perguntei se existe uma maneira mais fácil de fazer isso.
Qualquer ajuda seria muito apreciada. Joe
fonte
Respostas:
Estou assumindo que isso termina em "como uma pasta de trabalho que já está aberta". Não sei por que isso é um requisito, mas o Excel não toca em duas planilhas com o mesmo nome de arquivo. Você pode tentar
& Workbook.Name & ".bak"
seu código.Embora você deva notar que provavelmente está fazendo isso da maneira errada. O que você está tentando fazer é chamado de "controle de versão" e deve procurar em Cópias de sombra e um repositório de códigos-fonte (mesmo que essa planilha do Excel não seja um código-fonte, você ainda pode fazer a versão do arquivo). Isso é mais provável "A coisa certa a fazer (TM)"
fonte
Ok, então o longo e o curto parecem que não há uma maneira fácil de fazer isso. Não existe a função presente no Excel para permitir que os backups sejam salvos em uma pasta diferente. O que é necessário é uma macro do Visual Basic bastante simples - semelhante à descrita acima. Eu levei em consideração as idéias de Taspeotis e, portanto, votei sua resposta. Não dei a resposta tão correta quanto ela não responde à pergunta. Eu aprecio o tempo dado embora.
fonte