Notifications
Clear all

tecla desfazer

5 Posts
2 Usuários
1 Reactions
605 Visualizações
(@claudio-luis)
Posts: 3
Active Member
Topic starter
 

Quando faço uma planilha com macros a tecla desfazer se inabilita,  deixa de ser funcional, alguem pode me ajudar, me dizendo porque isso ocorre e como faço para contornar o problema?

 
Postado : 11/09/2023 2:38 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

1. qual a sua versão do Excel ?

2. você pode colar o código VBA aqui no fórum ?

3. em que momento o Desfazer desabilita ? Após rodar a macro ? Se sim, ao inserir manualmente conteúdo em alguma célula a função Desfazer volta a ficar ativa ?

4. a função fica desabilitada somente no arquivo que contém a macro ? Se abrir simultaneamente outro arquivo sem macro a função fica ativa nesse segundo arquivo aberto ?

5. você já tentou alguma solução ? Qual ?

Osvaldo

 
Postado : 11/09/2023 10:25 pm
(@claudio-luis)
Posts: 3
Active Member
Topic starter
 

Verifiquei com mais atenção e percebi que a macro que desabilita a tecla de desfazer é a que gera o relógio em tempo real:

Sub ClockRealTime()
Range("k2") = Time
Application.OnTime Now() + TimeValue("00:00:01"), "ClockRealTime"
End Sub

Private Sub Workbook_Open()
ClockRealTime
End Sub

 

A tecla desfazer ativa somente no momento da alteração de conteúdo da célula; ao sair ela se torna desabilitada novamente e impede o desfazimento. 

uso office professional plu 2019. A planilha esá salva como modelo habilitada para macros.

 
Postado : 12/09/2023 9:41 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Postado por: @claudio-luis

Verifiquei com mais atenção e percebi que a macro que desabilita a tecla de desfazer é a que gera o relógio em tempo real:

Correto. Ao executar uma macro que efetua alguma ação em alguma planilha do arquivo o recurso Desfazer se torna indisponível, tanto via Menu como via Ctrl+z. É assim que o Excel funciona.

 

A tecla desfazer ativa somente no momento da alteração de conteúdo da célula; ao sair ela se torna desabilitada novamente e impede o desfazimento. 

Não é exatamente "ao sair da célula" que torna indisponível o recurso Desfazer. Veja o comentário mais abaixo.

O seu código lança o horário em K2 a cada segundo, ou seja, a cada segundo o recurso Desfazer é tornado indisponível, então qualquer ação manual na planilha, como por exemplo, "sair da célula", poderá ter o seu efeito "confundido" com a ação da macro.

Faça um teste aí, altere o intervalo que a macro lança o horário de 1 para 5 ou para 10 segundos.

TimeValue("00:00:05") >>> 5 seg ou

TimeValue("00:00:10") >>> 10 seg

Para rodar a macro durante os testes veja uma sugestão no final da postagem.

Após disparar a macro aguarde até a primeira mudança do horário em K2 e em seguida insira algo em alguma célula vazia. Após inserir algo o recurso Desfazer ficará disponível. Observe agora que a partir da próxima alteração do horário em K2 o recurso Desfazer ficará indisponível.

Isso ocorre porque ao efetuar alguma ação na planilha, a macro também apaga "a pilha" de ações a desfazer, como consequência, se nada existir para ser desfeito, então o recurso ficará indisponível (indisponível me parece mais adequado do que Desabilitado, que comumente é utilizado para designar algum recurso alterado via Configuração). É assim que o Excel funciona.

Ocorre algo parecido com o recurso Colar. Se a Área de Transferência estiver vazia, então esse recurso estará indisponível, pois nada existirá para ser colado. E se houver conteúdo na Área de Transferência, ela poderá ser "limpada" via tecla Esc.

_________________________________________________________________________________________________

Como a sua macro é "iniciada" ao abrir o arquivo, para evitar "fecha-abre" do arquivo caso você decida fazer o teste que eu sugeri acima, então você poderá colocar o código abaixo em um Módulo comum e executá-lo (via Botão ou via Alt+F8 ou via atalho de teclado) para assim disparar o código que insere o horário em K2.

Sub Iniciar()
  ClockRealTime
End Sub

 

Osvaldo

 
Postado : 12/09/2023 11:15 am
(@claudio-luis)
Posts: 3
Active Member
Topic starter
 

Uau!   fiz o teste e foi perfeito.   Atualizei para cada 10s, o botão desfazer fica ativo até a atualização da macro. Foi perfeito. Muito obrigado. 

 
Postado : 12/09/2023 12:19 pm
Osvaldomp reacted