Notifications
Clear all

Limpar células automaticamente ao fechar o Excel

4 Posts
3 Usuários
0 Reactions
1,284 Visualizações
(@edvaldo123)
Posts: 14
Active Member
Topic starter
 

Olá para todos, eu uso várias planilhas de orçamento numa mesma pasta do Excel, e cada planilha faz um tipo de orçamento diferente, e tem macros diferentes para fazer a limpeza das células de forma automática, apenas clicando no botão da macro. Adicionei também uma fórmula para quando fechar o Excel, salvar os dados que foram editados automaticamente, sem precisar da mensagem de confirmação, se quer ou não salvar o trabalho.
Porém agora preciso incluir uma condição para que todas as macros que fazem a limpeza de células, sejam executadas assim que fechar a pasta de trabalho ou fechar o Excel, isso evita que seja preciso sair limpando planilha por planilha através de suas respectivas macros. Resumindo, quando for fechar a pasta de trabalho ou o Excel, todas as macros que fazem limpeza de células, precisam ser executadas antes de finalizar o trabalho, para que quando o Excel for aberto novamente, todas as planilhas ja estejam limpas e prontas para serem usadas.
Vou deixar abaixo o rascunho do módulo onde fica todas as macros de limpeza.

Sub Limpar1()
Range("K4:K11,K13,K14,I23:I26").ClearContents
End Sub
Sub Limpar2()
Range("K4:K12,K14,I23:I26").ClearContents
End Sub
Sub Limpar3()
Range("K4:K11,K13,I22:I25").ClearContents
End Sub
Sub Limpar4()
Range("K4:K12,K14,K15,I24:I27").ClearContents
End Sub
Sub Limpar5()
Range("K4:K12,K14:K17,I26:I29").ClearContents
End Sub
Sub Limpar6()
Plan22.Range("K4:K13,K15,K17,K18,I27:I30").ClearContents
Plan26.Range("D7:D15").ClearContents
End Sub
Sub Limpar7()
Range("K4:K13,K15,K16,I25:I28").ClearContents
End Sub
Sub Limpar_banderola1()
Range("D7:D15").ClearContents
End Sub

 
Postado : 04/05/2018 9:56 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Boa-tarde

Seria assim:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Call Limpar1
Call Limpar2
Call Limpar3
Call Limpar4
Call Limpar5
Call Limpar6
Call Limpar7

Call Limpar_banderola1

ThisWorkbook.Save
          
End Sub
 
Postado : 04/05/2018 10:09 am
(@edvaldo123)
Posts: 14
Active Member
Topic starter
 

Amigo a função que vc colocou não deu certo. Ela contem algum erro muito estranho, quando abro o depurador, ele acusa o erro em alguma das linhas de comando responsável pela limpeza das células, mas nunca é a mesma linha, a falha sempre está mudando de linha. Mas se ignorar esse erro, todas as células são limpadas sim! Porém toda vez que vou fechar a planilha surge esse erro!

 
Postado : 05/05/2018 2:16 pm
(@klarc28)
Posts: 971
Prominent Member
 

Coloque no início da macro:

On Error Resume Next
 
Postado : 05/05/2018 2:19 pm