Notifications
Clear all

Dúvida - salvar automaticamente de fato (não AutoRecuperação

10 Posts
3 Usuários
0 Reactions
2,480 Visualizações
(@mangaba)
Posts: 30
Eminent Member
Topic starter
 

Estou com uma dúvida sobre salvamento automático.

Tenho o office 2010. Usamos o office em rede. Gostaria de ativar o salvamento automático de um arquivo de excel. No caminho ARQUIVO - OPÇÕES - SALVAR já selecionei a opção para salvar a cada x minutos (AutoRecuperação). Mas não é isso que quero. Eu quero que o arquivo salve automaticamente a cada x minutos, e não que crie versões de AutoRecuperação para caso eu não salve o arquivo.

Há alguma opção para fazer o excel salvar de fato o arquivo automaticamente a cada x minutos ou a única alternativa possível é mesmo usar a AutoRecuperação?

 
Postado : 18/05/2015 12:37 pm
tfcastro
(@tfcastro)
Posts: 131
Estimable Member
 

Pode ser em VBA?
Usa esse Cód:

Option Explicit
Dim Arquivo As Workbook
Private Sub Workbook_Open()
Set Arquivo = ActiveWorkbook
Application.OnTime Now + TimeValue("00:05:00"), "salvar"
End Sub
Function salvar()
Arquivo.Save
Application.OnTime Now + TimeValue("00:05:00"), "salvar"
End Function

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 18/05/2015 2:11 pm
(@mangaba)
Posts: 30
Eminent Member
Topic starter
 

Pode ser em VBA?
Usa esse Cód:

Option Explicit
Dim Arquivo As Workbook
Private Sub Workbook_Open()
Set Arquivo = ActiveWorkbook
Application.OnTime Now + TimeValue("00:05:00"), "salvar"
End Sub
Function salvar()
Arquivo.Save
Application.OnTime Now + TimeValue("00:05:00"), "salvar"
End Function

Cara, não entendo nada de VBA. O pouco de macro que faço é só pelo "Gravar Macro".
Como posso inserir cód no VBA? Tem uma espécie de passo a passo?

 
Postado : 20/05/2015 8:33 am
tfcastro
(@tfcastro)
Posts: 131
Estimable Member
 

Abre a planilha, depois Digita Alt+F11.
Clica com o botão Direito na pasta de trabalho, vai em inserir Modulo.

Cola o Código acima.

Há tem q salvar depois sua planilha como ".xlsm" e não ".xlsx"
no
TimeValue("00:05:00"), voce edita de quanto em quanto tempo quer q salve

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 22/05/2015 1:02 pm
(@mangaba)
Posts: 30
Eminent Member
Topic starter
 

Abre a planilha, depois Digita Alt+F11.
Clica com o botão Direito na pasta de trabalho, vai em inserir Modulo.

Cola o Código acima.

Há tem q salvar depois sua planilha como ".xlsm" e não ".xlsx"
no
TimeValue("00:05:00"), voce edita de quanto em quanto tempo quer q salve

Bom, devo estar fazendo alguma coisa errada.
Abri o arquivo, abri o VBA, inseri um módulo, copiei e colei o código. Salvei.
Até salvei a planilha novamente, fechei e abri de novo. Mas ainda não tá salvando automaticamente, embora as outras macros (gravadas) continuem funcionando.
Meu arquivo já é xlsx....

O que será que estou fazendo de errado?

 
Postado : 25/05/2015 11:58 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Primeiramente, vc deve salvar como *.xlsm, senão, não vai dar certo.

Em segundo lugar, esse código NÃO deve ser colocado em um módulo. Coloque em EstaPasta_de_trabalho. (Dê 2 cliques nela e cole o código).

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 25/05/2015 1:34 pm
(@mangaba)
Posts: 30
Eminent Member
Topic starter
 

Primeiramente, vc deve salvar como *.xlsm, senão, não vai dar certo.

Em segundo lugar, esse código NÃO deve ser colocado em um módulo. Coloque em EstaPasta_de_trabalho. (Dê 2 cliques nela e cole o código).

Eu me expressei errado, meu arquivo já estava em xlsm....

De qualquer forma não consegui com essa macro. Mesmo colocando ela no EstaPasta_de_trabalho.

A solução que tive, parcial, foi dada pela macro deste link: http://www.exceldoseujeito.com.br/2009/ ... -planilha/

O único problema dessa macro apontada no link é que o arquivo só salva quando alguém faz uma alteração. Minha intenção era que a planilha salvasse sempre periodicamente, independentemente de alterações ou não (sei que é inútil, mas enfim....).

Última dúvida, não posso compartilhar uma planilha com macro neh? É que aqui no trabalho usamos documentos em rede e, em alguns casos, é interessante compartilhar para que mais de uma pessoa ao mesmo tempo consiga alterar o documento.

 
Postado : 26/05/2015 9:26 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Se essa solução do anexo te serviu, então apenas altere essa parte:

Sub SalvamentoProgramado()
If Application.ThisWorkbook.Saved = False Then
Application.ThisWorkbook.Save
End If
StartTimer ' Reschedule the procedure
End Sub

Para ficar assim:

Sub SalvamentoProgramado()
Application.ThisWorkbook.Save
StartTimer ' Reschedule the procedure
End Sub

Sobre usar macros em arquivos compartilhados: vc pode sim. Apenas uma observação: compartilhar a planilha bloqueia o acesso ao editor das macros - o VBE. Isso significa que, se vc precisar mexer em alguma macro, vai ter, primeiro, que descompartilhar a planilha. (Aliás, compartilhar a planilha, diga-se, é uma das formas mais seguras de proteger as macros).

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 26/05/2015 7:07 pm
(@mangaba)
Posts: 30
Eminent Member
Topic starter
 

Se essa solução do anexo te serviu, então apenas altere essa parte:

Sub SalvamentoProgramado()
If Application.ThisWorkbook.Saved = False Then
Application.ThisWorkbook.Save
End If
StartTimer ' Reschedule the procedure
End Sub

Para ficar assim:

Sub SalvamentoProgramado()
Application.ThisWorkbook.Save
StartTimer ' Reschedule the procedure
End Sub

Sobre usar macros em arquivos compartilhados: vc pode sim. Apenas uma observação: compartilhar a planilha bloqueia o acesso ao editor das macros - o VBE. Isso significa que, se vc precisar mexer em alguma macro, vai ter, primeiro, que descompartilhar a planilha. (Aliás, compartilhar a planilha, diga-se, é uma das formas mais seguras de proteger as macros).

Abs

Obrigado pela ajuda!

Essa alteração faz exatamente o quê?

 
Postado : 27/05/2015 9:02 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não sei quanto vc sabe de VBA, mas, o agendamento (executar um código com tempo pré-determinado) se faz com alguns códigos.

Nesse caso, o código que faz a parte específica de salvar tem uma condição (IF):

If Application.ThisWorkbook.Saved = False

Onde ela verifica se o arquivo já está salvo. Via de regra, um arquivo é considerado salvo, se nãou houve nenhuma alteração nele desde o último salvamento.

Então, a alteração que eu propus foi simplesmente retirar essa condiçào.

Em outras palavras, o código primeiro verificava se houve alterações, e somente salvava se houvessem. Tirei essa verificação e agora o arquivo salva sempre.

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 01/06/2015 3:02 pm