Notifications
Clear all

Ctrl + Z

3 Posts
2 Usuários
0 Reactions
1,645 Visualizações
(@rafaelluan)
Posts: 26
Eminent Member
Topic starter
 

Bom dia Pessoal,

Não seria bem uma dúvida, mas sim uma curiosidade, existe algum código onde eu possa executar o Ctrl + Z (desfazer)?
Exemplo: Eu digito alguns dados em celulas, depois eu apago tudo, teria como eu incluir um botão onde ele tivesse a função do Ctrl + Z ?? tudo bem que seria muito mais facil eu clicar em "desfazer" ou ir pela prórpria combinação de teclas, mas por se tratar de uma curiosidade, gostria de saber se tem como.

obrigado,

 
Postado : 22/04/2014 9:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

De fato é muito raro utilizarem este comando em VBA, mas existe sim a possibilidade de faze-lo, por exemplo :

Esta rotina desfaz a ÚLTIMA ação :

Sub UndoLastAction()

    With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With

End Sub

Se pesquisar na Net encontrara varios tópicos sobre este assunto, alguns até com conteudo mais completo com a possibilidade de desfazer mais ações, alguns se utilizam de fazerem tipo cópias das alterações e depois aplicarem as reversões, é bem variado e alguns até bem complexos.

De uma olhada no site abaixo :
Undoing a VBA Subroutine
http://j-walk.com/ss/excel/tips/tip23.htm

Preserving the Undo List
http://excel.tips.net/T002060_Preservin ... _List.html

Este tambem fala a respetio :
Creating An Undo Handler To Undo Changes Done By Excel VBA
http://www.jkp-ads.com/Articles/UndoWithVBA00.asp

Uma obs, é que revendo alguns links, temos tambem variações referentes a ações efetuadas manualmente e/ou atraves de rotinas, são coisas distintas.
[]s

 
Postado : 22/04/2014 10:01 am
(@rafaelluan)
Posts: 26
Eminent Member
Topic starter
 

Ah sim, legal, perguntei mais por curiosidade mesmo.

Muito obrigado pela resposta, e pode deixar que irei ler o conteudo dos links, é até interessante isso, porque quando aplicamos determinada rotina não existe a possibilidade de executar um "desfazer".

 
Postado : 22/04/2014 10:17 am