- Este tópico contém 8 respostas, 2 utilizadores e foi actualizado pela última vez há 11 anos por Anónimo.
-
AutorArtigos
-
-
19 de Março de 2013 às 12:28 #1281AnónimoInactivo
bom dia!
estou numa situação por, acredito eu, falta de compreensão. no evento exit de um text no vba estou inserindo uma análise se a caixa de texto ficou vazia, se vazia o sistema pergunta se o usuário quer encerrar.
para encerrar funciona normalmente, no entanto, quando o usuário seleciona não direciono o setfocus para a propria caixa de texto mas ele não obedece e pula para o próximo componente.
como resolver isso?
código:
if txos.text = “” then
resposta = msgbox(“tem certeza que deseja sair?”, vbyesno, “fechar aplicativo”)
if resposta = vbyes then
ufid.hide
application.visible = true
end if
txos.setfocus
end if -
19 de Março de 2013 às 17:10 #2138jorgerodAdministrador
talvez:
if txos.text = vbnullstring then
resposta= msgbox (“tem certeza que deseja sair?”, vbyesno, “fechar aplicativo”)
if resposta = vbyes thentxtanswer.setfocus
exit sub
end if
end ifatenção… não testei …
-
19 de Março de 2013 às 18:16 #2139AnónimoInactivo
jorge, talvez não tenha me expressado adequadamente. o aplicativo está interpretando a condição perfeitamente, apesar de evoluí-la (e eu também) inserindo o vbnullstring.
a questão é que quero tratar a negativa e a negativa da condição é manter o foco no componente atual. o que eu preciso é que o foco continue no componente caso a resposta for negativa.
agradeço a atenção.
renato rosa
-
19 de Março de 2013 às 19:25 #2140jorgerodAdministrador
renato,
verifica esta possibilidade:
for each ctrl in controls
if txos.text = vbnullstring then
resposta = msgbox(“tem certeza que deseja sair?”, vbyesno, “fechar aplicativo”)
if resposta = vbyes then
ufid.hide
application.visible = true
else
txos.setfocus
end if
end if
next ctrlse não for isto, acho que o melhor é colocares uma planilha de exemplo, com o código todo que tens no teu userform, para se poder ver melhor, ok?
fica bem.
-
19 de Março de 2013 às 19:52 #2141AnónimoInactivo
jorge, conforme sugeriu.
veja a segunda caixa de texto. de acordo com o código que coloquei ele teria que permanecer na caixa 2 e não ir para próxima.
inserir um label para imprimir ao passar só para valer no “baiano” (isso é antigo).
-
19 de Março de 2013 às 19:54 #2142AnónimoInactivo
jorge, conforme sugeriu.
veja a segunda caixa de texto. de acordo com o código que coloquei ele teria que permanecer na caixa 2 e não ir para próxima.
inserir um label para imprimir ao passar só para valer no “baiano” (isso é antigo).
-
19 de Março de 2013 às 22:11 #2143jorgerodAdministrador
boas, renato,
depois de teres explicado o que pretendes, acho que agora estará ok.
experimenta e diz qq coisa, ok?
cÓdigo:
'---------------------------------------------------------------------------------------
' procedure : textbox2_exit
' author : jrod
' date : 19/03/2013
' purpose : se a resposta é negativa, então o foco mantém-se no textbox2
'---------------------------------------------------------------------------------------
'
private sub textbox2_exit(byval cancel as msforms.returnboolean)
dim resposta as stringwith textbox2
if len(.value) = 0 then
resposta = msgbox("tem certeza que deseja sair?", vbyesno, "fechar aplicativo")
if resposta = vbno then
cancel = true
else
exit sub
end if
end if
end with
end sub -
19 de Março de 2013 às 23:58 #2144AnónimoInactivo
top meu nobre!
cancel = true
this is solution.
muito obrigado! mas voltarei em breve. enquanto isso vou visitar as outras sessões.
renato rosa
-
20 de Março de 2013 às 0:03 #1282jorgerodAdministrador
🙂
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.