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
Postado : 12/09/2023 11:15 am