Usuário com melhor resposta
Comando para desfazer continuamente (Ctrl + Z)

Pergunta
-
Olá pessoal. Tenho alterado a minha forma de criar planilhas, construindo-a a medida que os dados vão sendo inseridos. Tudo tem funcionado bem, mas tive um efeito colateral desagradável. Já que a cada dado inserido uma macro é executada, o Ctrl+Z deixa de funcionar (já que não é possível desfazer um procedimento).
Bem, como todas as modificações são registradas em uma plan auxiliar eu pensei em reprogramar o Ctrl+Z para aplicar a última modificação ocorrida. Mas isto é apenas em uma planilha específica. Nas outras eu gostaria que o Ctrl+Z funcionasse normalmente.
Porém o comando Application.undo desfaz apenas uma vez. Ao executá-lo novamente ele refaz a ação que tinha desfeito. Assim a pergunta é:
como programar o Ctrl+Z para ir desfazendo continuamente (como ocorre normalmente?). É possível?
Ah, ação de desfazer não gera nenhum comando durante a gravação de macros.
Agradeço desde já, Michel Macário
Respostas
-
Michel, não é possível. Pelo fato de macros em VBA poderem alterar as entidades da aplicação em praticamente qualquer aspecto, o Excel limpa sua pilha de desfazer ações. É um grande efeito colateral de usar macros.
Vale ressaltar que nem todas macros limpam essa pilha. Por exemplo, se você executar macros que não altere/apague/crie entidades numa pasta de trabalho/planilha/célula, o Excel não limpará a pilha de desfazer, como, por exemplo, exibir uma caixa de mensagem.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator quinta-feira, 23 de outubro de 2014 13:20
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 15 de novembro de 2014 10:58
Todas as Respostas
-
Michel,
Boa tarde,
Veja se o post abaixo esclarece sua dúvida.
De ante mão, acredito que não seja possível.
Roberto Santos
- Editado Roberto_Santos quarta-feira, 15 de outubro de 2014 15:16
-
Olá Roberto, muito obrigado pela resposta, mas infelizmente não resolve meu problema. A dúvida é como fazer o Ctrl+Z ir desfazendo continuamente (como o bom e velho CtrL+Z, hahaha) ... mas achei interessante a ideia de salvar o estado original num local temporário para que seja executado posteriormente.
Att. Michel Macário -
-
Michel, não é possível. Pelo fato de macros em VBA poderem alterar as entidades da aplicação em praticamente qualquer aspecto, o Excel limpa sua pilha de desfazer ações. É um grande efeito colateral de usar macros.
Vale ressaltar que nem todas macros limpam essa pilha. Por exemplo, se você executar macros que não altere/apague/crie entidades numa pasta de trabalho/planilha/célula, o Excel não limpará a pilha de desfazer, como, por exemplo, exibir uma caixa de mensagem.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator quinta-feira, 23 de outubro de 2014 13:20
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 15 de novembro de 2014 10:58