Notifications
Clear all

Como usar o evento Exit de TextBox em um módulo de Classe?

9 Posts
3 Usuários
0 Reactions
3,109 Visualizações
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

Companheiros,

Boa Noite!

Criei um módulo de classe para formatar como data vários controles TextBox em um formulário, sem ter que ficar formatando um a um individualmente. No evento Keypress dentro do módulo de classe já consegui, travar a quantidade de caracteres em 10 dígitos, alinhar a data no centro de cada textbox, permitir apenas o uso de números e de backspace e inserir as barras da formatação das datas que serão digitadas nas textbox. Até aí tudo certo.

Ocorre que é necessário validar se o usuário digitou uma data válida. Obviamente, eu poderia utilizar outros controles (como DTPicker) que me pouparia inclusive o trabalho dessa validação. Mas preciso usar TextBox e é inviável utilizar o evento EXIT de cada TextBox existente no formulário. Essa validação de datas posso fazer com a função IsDate do VBA. Todavia, não posso inserir essa validação dentro do Evento KeyPress pois a validação seria disparada cada vez que o usuário pressionasse uma tecla referente a entrada de um número.

Desse modo, pensei em utilizar o Evento EXIT para fazer a referida validação. Para minha surpresa, esse evento não está disponível na lista de eventos existente na Classe criada. Ou seja: nem todos os eventos existentes em um controle TextBox estão disponíveis na classe (que cria um objeto TextBox) criada.

Assim, gostaria de pedir a ajuda dos colegas integrantes do fórum para saber como eu poderia, dentro da classe criada, validar as datas que são entradas nas caixas de texto do formulário. Que evento eu poderia ou deveria usar? Tem como eu criar o evento EXIT dentro da classe?

Para melhor entendimento de todos, anexo um pequeno exemplo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 30/08/2017 3:36 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner, não tenho como ver seu exemplo no momento, eu devo ter um modelo, mas não aqui no serviço, vou ver em casa.
Enquanto isto, se não tiver nenhuma outra resposta, de uma olhada no link abaixo se ajuda,seria da mesma questão :

VBA Multiple Textbox Exit Event Question
https://www.mrexcel.com/forum/excel-que ... stion.html

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2017 6:31 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

Mauro,

Obrigado. Li o material que você disponibilizou pelo link, todavia, o pessoal está tratando de Labels. Vou esperar você ver o meu arquivo para que possa analisar se tem como me ajudar.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 31/08/2017 8:01 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro,

Obrigado. Li o material que você disponibilizou pelo link, todavia, o pessoal está tratando de Labels. Vou esperar você ver o meu arquivo para que possa analisar se tem como me ajudar.

Wagner, no link falam sobre Textbox tambem, em uma lida rápida, dizem que o Evento Enter e Exit não fazem parte do Modulo de Classe, então tipo que forçamos a criação dos mesmos, desta forma peguei um dos códigos disponibilizados e fiz uma rápida adaptação, deixei vários códigos desabilitados só para dar uma olhada, depois pode apagar para ficar mais limpo, e tambem acredito que de para ajustar algumas váriaveis diferentes mas se referem ao mesmo controle, de qualquer forma de uma olhada e veja se aja ajuda, não cheguei a realizar testes mais profundos, qualquer coisa retorne.

withevent- Evento Exit TextBox

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2017 12:21 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

Mauro,

Boa noite!

Muitíssimo obrigado!!!

Era exatamente isso que eu estava a procura. Confesso que ainda é muito complexo para o meu entendimento e que eu jamais chegaria sozinho ao desenvolvimento de tal evento.

Com tempo, vou estudar detalhadamente cada linha dessa classe que cria o evento Exit para compreender como é que ela trabalha, pois, nesse momento, não consegui entender.

Valeu mesmo. Sabia que esse tipo de ajuda só poderia vir de você e de alguns poucos integrantes desse fórum que já sei que são igualmente experts em VBA.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 31/08/2017 3:25 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Foi um pouco exagerado, mas agradeço de qualquer forma.
Não encontrei o exemplo que tinha dito, mas encontrei um outro, tambem um pouco antigo, e é uma pena que não anotei a fonte no mesmo, mas nele é criado algumas funções para alguns eventos usando LostFocus e GetFocus, então a titulo de estudos segue anexo.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2017 8:13 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
 

Bom dia meus caros,
fico só acompanhando os movimentos dos expert's para ver se aprendo mais kkkk

Será que vocês podem me dizer:

* O que é o módulo classe?
* Pra que serve?
* Quais possibilidades nos dá?
* Precisa ser expert em VBA pra conseguir usá-lo?
* Comentários que queiram fazer:

Obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 01/09/2017 5:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bem resumido, as Classes são para se trabalhar com vários objetos escrevendo-se um código único que possa ser utilizado por todos os objetos, evitando ter de ter um para cada objeto - programação orientada a objetos (POO), podemos ter 10 botões em um formulário, então, em vez de eu ter 10 rotinas, escrevo sómente uma e associo aos botões registrando no Módulo de Classe. Eu costumo dizer que seria como uma Função, ela é única e pode ser utilizadas em várias situações sem precisar escrever uma para cada ação.
Se pesquisar no forum, tem alguns posts sobre o assunto, tambem no forum do Tomás Vasquez ( http://www.tomasvasquez.com.br/forum/index.php ) tem vários exemplos, pode estar vendo tambem no link abaixo.

Introdução a Módulos de Classe no VBA
http://ambienteoffice.com.br/blog/intro ... se-no-vba/

No meu entender, não precisa ser expert, você pode transportar várias rotinas que tem o mesmo procedimento sómente para uma e coloca-la no módulo de classe, é claro que Módulo de Classe tem suas particularidades, mas temos muito material na net para estudar e entender.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/09/2017 8:13 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
 

Desculpe utilizar o tópico para tirar dúvidas. Foi só pra pegar o embalo da solicitação.

Mas agradeço, vou dar uma lida neste material que voce enviou. Achei interessante, talvez mate metade dos meus problemas relacionados à planilhas pesadas.

Obrigado mais uma vez Mauro.

Abraços

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 01/09/2017 10:50 am