Mauro boa tarde.
A sua sugestão deu certo também e fiquei muito grato por ela, exclusivamente para essa planilha e outra daria pra usar.
No entanto, eu queria uma outra solução, porque aqui no escritório, nem todos tem habilidade em Excel, e vi um algo que poderia dar problema ... como essa macro aplicarei em diversos arquivos com planilhas diferentes, valores diferentes, a cada planilha a pessoa teria que ter determinar onde estaria essa Range que receberia o valor, e teria que deixar reservado ela exclusivamente para isso. E nem todos tem uma planilha "Base de Dados".
Aí procurei outra solução, eu acabei achando uma. Como minha habilidade em VBA é pequena, a solução pode parece simples para outras pessoas, mas era exatamente o que eu procurava ... quando eu atribui a variável INICIAL como "public" dentro do Módulo, ANTES eu pensava que ela só seria pública ou global nas macros entre os módulos, mas na verdade ela também se torna pública nos códigos dentro de "ESTAPASTA_DE_TRABALHO" inclusive na rotina "Workbook_Open()". Depois que descobri isso, coloquei no módulo1 a linha "Public INICIAL As String" e em "ESTAPASTA_DE_TRABALHO" "Workbook_Open()", antes de chamar a macro, INICIAL = " - Inicial". E no nome do arquivo acrescente a váriavel INICIAL.
Depois que ela termina de salvar, coloquei INICIAL = "" e assim ela não salva coloca " - Inicial".
E deu certinho! Agora o pessoal só precisa copiar e colar os código, como habitualmente já fazem aqui.
Estou deixando em anexo o arquivo e imagem em anexo para consultas futuras.
A macro abaixo cria uma cópia de segurança (BACKUP) em c: a cada 5 minutos
Algumas pessoas podem perguntar: "Mas para que isso, se existe a opção de 'Salvamento automático' no Excel??". Bom pessoal, primeiramente porque eu já tive VARIASSS experiencias onde essa opção não funcionou corretamente, e de onde eu extrai um código parecido, também tinha muita gente que não confiava. E em segundo, porque eu posso voltar alguma etapa que não tenha dado certo, ou que poderia ser feito de outra forma.
Espero que ajudem outras pessoas também.
OBRIGADO MAURO PELA AJUDA
ESTAPASTA_DE_TRABALHO
Private Sub Workbook_Open()
Application.ScreenUpdating = False
'..........................................................................................................................'
'PARA QUE O BACKUP INICIAL FUNCIONE, É PRECISO FAZER ALGUM TIPO DE MODIFICAÇÃO NO ARQUIVO PARA QUE HAJA ALGO A SER SALVO. '
'PARA ISSO INCLUI AS LINHAS: '
' Sheets(1).Visible = False '
' Sheets(1).Visible = True '
' Sheets(1).Select '
'OCULTA A 1º PLANILHA, E DEPOIS EXIBE ELA NOVAMENTE. ESSA ALTERAÇÃO É O SUFICIENTE PARA QUE SALVE UMA COPIA '
'..........................................................................................................................'
'BACKUP INICIAL
Sheets(1).Visible = False
Sheets(1).Visible = True
INICIAL = " - Inicial"
Call INICIAR_AUTO_BACKUP
Application.ScreenUpdating = True
End Sub
MODULO 1
Public INICIAL As String
Sub INICIAR_AUTO_BACKUP()
INTERVALO = 300 'INTERVALO ENTRE UM BACKUP E OUTRO, EM SEGUNDOS.
CAMINHO = "C:"
NOME = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) & " - Auto Backup - " & VBA.Format(VBA.Date, "YYMMDD") & " - " & VBA.Format(VBA.Time, "hhmmss") & INICIAL
On Error GoTo MENSAGEM
If Application.ThisWorkbook.Saved = False Then
INICIAL = ""
ActiveWorkbook.SaveCopyAs Filename:=CAMINHO & NOME & ".xlsm"
ActiveWorkbook.Save
End If
INICIAR = Now + TimeSerial(0, 0, INTERVALO)
Application.OnTime EarliestTime:=INICIAR, Procedure:="INICIAR_AUTO_BACKUP", Schedule:=True
GoTo FIM
MENSAGEM:
MsgBox "Verifique o caminho de gravação do backup." & Chr(13) & Chr(13) & CAMINHO & Chr(13) & Chr(13) & "O backup não será feito até que a pasta seja criada e o arquivo reiniciado!"
FIM:
End Sub
Sub AUTO_BACKUP_PARAR()
' On Error Resume Next
Application.OnTime EarliestTime:=INICIAR, Procedure:="INICIAR_AUTO_BACKUP", Schedule:=False
End Sub
Postado : 09/07/2014 3:29 pm