VBA - INTERROMPER TOTALMENTE O CODIGO

ALELUIZ 21/06/2011 16:33:26
#377437
Citação:

:
Cria uma variável do form pra controlar isso.
Quando vc quiser parar, seta ela.



Dim varParaTodaEssaPorra as Boolean

Private sub diabolic1()
VarParaTodaEssaPorra = false
[ô]... faz altas gambiarras do demonio aqui
maracutaia()
[ô]
If varParaTodaEssaPorra then Exit Sub
End sub

private sub maracutaia()
if 1 + 1 = 2 then
varParaTodaEssaPorra = true
endif
End sub





é o mesmo processo do [Ô]LREZANI[Ô]

após setar varParaTodaEssaPorra = true

ele retorna para a sub diabolic1()

não quero nem que retorne, mas acredito que não sej apossivel conforme citou o [Ô]LREZANI[Ô]

Citação:

Não vejo outra alternativa, pois o VB sempre vai voltar para a função anterior a da chamada.

MARCELO.TREZE 21/06/2011 16:40:51
#377438
bom vc não testou o que eu postei mas novamente está a sugestão

[ô]no general do form declare

Dim Continua As Boolean


Sub A()
If Continua = True Then
Chama_Sub_B [ô] ok
End If
End Sub


Sub B()
Continua = False
End Sub


teste ai

LLAIA 21/06/2011 16:56:00
#377439
Vc pode chamar o End, mas no evento Unload do Form, vc seta a variael Cancel = 1. Veja se dá certo. No entanto é um gambiarra bonita hein.

Se vc explicar qual é o seu problema talvez a gente possa te dá a solução sem esse malabarismo.
ALELUIZ 21/06/2011 16:56:45
#377440
Testei sim Marcelo, Obrigado pela dica , mas a SUB A Chama a SUB B após a SUB B ser Executada ela volta para a SUB A , eu não quero voltar a sub A
MARCELO.TREZE 21/06/2011 17:07:55
#377443
o que estou tentado entender como é que volta para sub A se ão existe nada que chame a sub A, teoricamente a Sub A deveria funcionar apenas uma vez

e da forma que eu fiz

Sub A()
If Continua = True Then [ô] Se continua for verdadeiro chama a sub b
chama a sub B
End if
End Sub

Sub b()
Continua = False [ô] Ou seja mesmo que a suba A seja chamada, ela não executará nada
End Sub

entendeu
ALELUIZ 21/06/2011 17:23:39
#377445
com foi a SUB A Que Chamou a SUB B depois que a B abaca ela volta automatica para a A Claro que ela não volta para executar o código inteiro
continua de onde chamou no exemplo que vc postou ela volta na A no end if e termina.

If Continua = True Then [ô] Se continua for verdadeiro chama a sub b
chama a sub B [ô] Aqui ela chamou a sub b, quando a sub B teminar ela volta para a Sub A no end if
[txt-color=#e80000]End if[/txt-color]


MARCELO.TREZE 21/06/2011 17:43:37
#377447
Tá ficanddo louco o negócio...rs

agora eu consegui simular o seu problema, faz o seguinte pasta o código de suas subs, pra ver se existe uma alternativa
MARCELO.TREZE 21/06/2011 17:48:35
#377449
eu consegui simular o problema desta forma

Dim Continua As Boolean

Private Sub Form_Load()
Continua = True
End Sub

Private Sub Command1_Click()
Call A
End Sub

Sub A()
MsgBox [Ô]vou chamar a sub B[Ô]
Call B
If Continua = False Then Exit Sub [ô]apos executar a sub b nada mais acontecerá
MsgBox [Ô]voltei para sub A[Ô]
End Sub

Sub B()
MsgBox [Ô]Eu sou a sub B e vou encerrar o processo aqui[Ô]
Continua = False
End Sub


MITSUEDA 22/06/2011 12:57:46
#377515
Então tenta na gambiarra rs....

Sub A()
Call b
MsgBox [Ô]teste[Ô]
End Sub

Sub b()
SendKeys [Ô]{ESC}[Ô]
End Sub

Abraço
ALELUIZ 22/06/2011 13:49:56
#377524
MITSUEDA - não deu ceto a Gambi...
Marcelo, no seu exemplo note que depois de executado a SUB B ele volta na sub A exatamente no if e depois disso não executa mais nada depois do IF
O que eu quero é que ele nem volte para a SUB A.
ò duvida cruel rssrsrsrsrs
Página 2 de 3 [29 registro(s)]
Tópico encerrado , respostas não são mais permitidas