Quando clico no CommandButton não faz nada  [Resolvido]

Text Box, Form's, rotinas, etc.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Quando clico no CommandButton não faz nada

Mensagempor Kaleo_rs » Qua Ago 23, 2017 9:23 pm

Boa noite, pessoal!

Criei um formulário com três campo do tipo TextBox, e para cada um deles exite um "Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)" que quando são preenchidos faz alguma coisa. Porém, ao clicar no CommandButton denominado "CONSULTA" não executa o comando, ao invés disso ele vai para o próximo TextBox como se tivesse teclado "ENTER".

Como faço para que isso não aconteça, ou seja, quando preencher o primeiro TextBox e clicar no CommandButton não vá para o próximo TextBox e sim execute o comando do botão.
Kaleo_rs
Membro
Membro
 
Mensagens: 61
Registrado em: Ter Jan 27, 2015 9:40 am
Has thanked: 5 times
Have thanks: 0 time

{ SO_SELECT }

Re: Quando clico no CommandButton não faz nada

Mensagempor wagner » Qui Ago 24, 2017 7:25 am

Kaleo_rs,

Bom dia!

Isso depende muito do código que está contido no evento Exit das suas caixas de texto. Assim, sem ver o arquivo, fica muito difícil fazer adivinhações... O melhor é você postar seu arquivo compactado com .ZIP aqui mesmo no fórum e explicar melhor qual é o resultado que espera.

A priori, o que deve está ocorrendo é que o VBA está tentando executar o código do evento Exit da caixa de texto assim que você clica no botão de comando pois o evento EXIT é disparado assim que o controle perde o foco. Ou seja: no momento que você clica no botão de comando, a caixa de texto perde o foco e dispara o evento EXIT.
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
Kaleo_rs (Sex Ago 25, 2017 10:47 am)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3027
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 43 times
Have thanks: 1331 times

Re: Quando clico no CommandButton não faz nada

Mensagempor Kaleo_rs » Qui Ago 24, 2017 11:37 am

Bom dia,

Segue em anexo o arquivo para avaliação.

Ao abrir o formulário, informe no campo DATA a data 23/08/17 sem as barras. Ao clicar no BOTÃO "CONSULTAR" neste momento DEVIRIA executar o comando do botão, porém ao clicar no BOTÃO vai para o próximo campo.

Preciso que ao clicar no botão não vá para o próximo e execute o comando do botão.
Você não está autorizado a ver ou baixar esse anexo.
Kaleo_rs
Membro
Membro
 
Mensagens: 61
Registrado em: Ter Jan 27, 2015 9:40 am
Has thanked: 5 times
Have thanks: 0 time

Re: Quando clico no CommandButton não faz nada

Mensagempor Kaleo_rs » Sex Ago 25, 2017 10:57 am

[quote="wagner"]Kaleo_rs,

Bom dia, Wagner!

Será que você poderia avaliar o problema, encaminhei o arquivo em anexo.
Kaleo_rs
Membro
Membro
 
Mensagens: 61
Registrado em: Ter Jan 27, 2015 9:40 am
Has thanked: 5 times
Have thanks: 0 time

Re: Quando clico no CommandButton não faz nada  [Resolvido]

Mensagempor wagner » Sáb Ago 26, 2017 4:59 pm

Kaleo_rs,

Boa tarde!

É como eu já havia lhe dito. Existe um código no evento EXIT da caixa de texto da data que faz a formatação da data, inserindo as barras nos números que são digitados na caixa de texto.

Desse modo, quando você clica no botão CONSULTAR, automaticamente o VBA "entende" que deve executar o código que está dentro do evento EXIT da caixa de texto, pois nesse momento, a caixa de texto perde o foco para o botão CONSULTAR e a prioridade de execução dada pelo VBA é para o Evento Exit do controle que possuía o foco.

O procedimento padrão dos usuários comuns para os aplicativos do Windows é o de digitar uma data e clicar em TAB para passar para o próximo campo e não já ir clicando num botão para consultar algo (até porque, enquanto você não sair da caixa de texto, ainda não existe data nenhuma. Só números).

Existe várias maneiras de você ajeitar isso (se não quiser deixar assim mesmo pois, ao meu ver, seu código não tem erro nenhum. Veja, o normal é digitar a data e teclar TAB. Assim funciona perfeitamente bem). Mas vamos lá... quais seriam as sugestões em caso de mudanças? Poderiam ser essas:
1 - Você pode tirar todo esse código do evento EXIT da caixa de texto e transferir para o botão CONSULTAR, no próprio evento Click do botão. Ou seja, quando o usuário digitar os números da data na caixa de texto e clicar no botão consultar, o primeiro código do evento clique do botão consultar será o código que transforma os números da caixa de texto em uma data e exibe a data formatada na caixa de texto. Essa é a primeira solução.
2 - Ao invés de usar uma caixa de texto para que o usuário digite os números da data e, como se trata de uma consulta que é realizada na planilha, você pode usar um ComboBox que, ao carregar o formulário (no evento Initialize do formulário) você carrega as datas para esse ComboBox, já formatadas como data, para que o usuário apenas escolha uma data para pesquisa.
3 - Você pode também utilizar, no lugar de uma caixa de texto ou de um ComboBox, um controle adicional da Microsoft que se chama DTPicker. Esse controle fornece um pequeno calendário quando o usuário clica nele e aí permite que o usuário escolha a data que quiser. Trata-se de um controle adicional que você pode instalar (se ainda não tiver instalado em sua máquina). Procure na internet que encontrará. Isso impedirá, inclusive, que o usuário cometa erros ao digitar a data de consulta. Você já pesnou, por exemplo, se o usuário digitar uma data inválida? Tipo 31/02/2017? Você já tratou isso no seu código? Ou se ele, por exempl, digitar número que não têm nada a ver com uma data, tipo 38/40/0000? E aí? seu código não dará erro?

Outra coisa, da próxima vez que colocar arquivos protegidos com senha (planilha ou o projeto VBA) aqui no fórum, por gentileza, forneça as senhas, pois muitas pessoas que poderiam ajudar, não ajudam por não saber como "quebrar a senha". Se bem que em se tratando de senhas no Excel ou no projeto VBA, são totalmente transparentes para o Calc do BROffice.
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3027
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 43 times
Have thanks: 1331 times


Voltar para Formulários

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron