Backup de arquivos do Excel em um diretório diferente

0

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 do original.
Existe uma maneira simples de alterar este diretório para outra unidade / pasta? Eu tenho mexido com macros para fazer isso, chegando com:

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, recebo:
Erro de tempo de execução '1004'; O Microsoft Office Excel não pode acessar a pasta de arquivos 'T: \ TEC_SERV \ Backup do arquivo - NÃO EXCLUIR \ Testar a Planilha de Macro.xlsm. Existem várias razões possíveis:
O nome do arquivo ou o caminho 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 uma ...

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 eu estou tentando salvar, mas deve apenas substituir.

Eu postei a pergunta sobre o código no Stack Overflow, mas imaginei se há uma maneira mais fácil de fazer isso.

Qualquer ajuda seria muito apreciada. Joe

    
por Joe Taylor 14.05.2010 / 14:37

2 respostas

0

Ok, então o longo e o curto parece 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 conta as idéias de Taspeotis e, assim, votei em sua resposta. Eu não dei a resposta tão correta como ela não responde à pergunta. Eu aprecio o tempo dado embora.

    
por 20.05.2010 / 12:13
1

The workbook you are trying to save has the same name as a...

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 tocará em duas planilhas com o mesmo nome de arquivo. Você pode querer experimentar & Workbook.Name & ".bak" em seu código.

Embora você deva notar que provavelmente você está fazendo isso da maneira errada. O que você está tentando fazer é chamado de "controle de versão", e você deve procurar em Cópias de Sombra e um repositório de código-fonte (mesmo que essa planilha do Excel não seja código fonte, você ainda poderá fazer a versão do arquivo). É mais provável que "A coisa certa a fazer (TM)"

    
por 14.05.2010 / 16:01