Boa Tarde,
Gostaria da ajuda dos colegas para resolver o seguinte problema
Tenho um Loop em um Sub que fica rodado enquanto determinada condição for verdadeira. Gostaria que, quando o usuário pressionasse um determinado conjunto de teclas (por exemplo: CTRL + Seta para Cima), parasse a execução do Loop e saisse do Sub.
Mais ou menos assim
Sub Exemplo()
<Comandos>
While Condicao
If Teclas_Pressionadas = CTRL + Seta para Cima Then
Exit Sub
End If
Wend
<Comandos>
End Sub
Dentro do loop, coloque:
VBA.Doevents
E mais, dê uma olhada no application.onkey
Ali vc consegue determinar uma tecla de atalho, que será capturada pelo doevents, que poderá chamará uma rotina que troca o valor de uma variável global (ou não), e vc pode colocar um exit loop ali no meio...
Fez sentido ?
FF
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Boa Noite FF,
É mais ou menos isso? Fiz este exemplo, mas não está funcionando
Sub Exemplo()
Dim Condicao As Boolean
Condicao = True
While Condicao = True
DoEvents
Application.OnKey "{RIGHT}", "Sair"
Wend
End Sub
Public Sub Sair()
MsgBox ("Clicou seta para a direita")
End Sub
Abraços,
Anderson
public blSair as boolean
Sub Exemplo()
Dim Condicao As Boolean
Condicao = True
Application.onkey "^{UP}", “sair"
While Condicao = True
<comandos>
Doevents
If blSair then goto sair
Wend
Sair:
Application.OnKey "^{UP}"
BlSair =false
End Sub
Public Sub Sair()
BlSair =true
MsgBox ("Clicou seta para a direita")'linha desnecessária
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Bom dia Fernando,
Ainda não estou conseguindo.....
Veja o exemplo que criei... o que estou fazendo de errado?
Abraços,
Anderson
Seguinte, acabei de descobrir que com o OnKey, isso não vai dar certo. Ele só dispara um código quando você não está em tempo de execução.
Sugiro colocar um botão Cancelar, que chamará a rotina Sair.
Isso certamente funcionará.
E exclua as linhas do application.onkey...
FF
p.s.: Como moderador, eu tive que excluir seu anexo pois não atendia as regras do forum (estar compactado)...
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel