VALIDAR CPF E CNPJ NUM MESMO TEXTBOX [VB / VBA]

JUVSOARE 11/12/2013 03:36:35
#431988
Desculpem a ignorância do macaco! Mas preciso terminar um formulário e não sei como aplicar no VBA (onde copiar eu já criei o módulo) para que quando se digitar no formulário do Excel, já se faça a verificação do CPF.
Explicando: Não sei quais instruções dar, ex.: [Ô]Private Sub UserForm_Click()[Ô] ; [Ô]Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)[Ô]; [Ô]Private Sub CPF_CNPJ_Change()[Ô]; Private Sub CPF_CNPJ_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)[Ô].
Enfim, sei fazer funciona na planilha do Excel mas não sei como fazer funcionar diretamente no preenchimento do Formulário. Poderiam me ajudar?
TUNUSAT 11/12/2013 10:55:21
#431994
JUVSOARE,

Olha, o VB6 é orientado a eventos, cada um destes eventos é aplicado de acordo com uma atitude que o usuário toma.

Vamos repassar cada uma:
- Click -> Geralmente clique do mouse;
- Form KeyPress -> Qualquer tecla pressionada no teclado pelo usuário no formulário;
- Change -> Qualquer modificação no campo;
- Text KeyPress -> Qualquer tecla pressionada no teclado pelo usuário no campo;

Cada uma destas acima é muito específica, quero dizer, elas gerencia cada tecla digitada! Não é o seu caso...

Eu acho que no seu caso seria melhor fazer a verificação ao [Ô]perder o foco[Ô] -> [Ô]LostFocus[Ô]. Por qu?
Porque você precisa do número completo para aplicar o cálculo do dígito verificador de CPF (11 dígitos) ou CNPJ (14 dígitos).
Se o dígito bater, tudo bem. Não precisa fazer nada.
Se tiver problema com o dígito verificador e não bater o número, você pode pedir para:
1 - Limpar o campo;
2 - Colocar o foco novamente no campo (SetFocus);

é isto?!?


[][ô]s,
Tunusat.

FILMAN 12/12/2013 00:20:32
#432006
Geralmente utiliza-se as seguinte

Private Sub CPF_CNPJ_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 then [ô]Se a tecla pressionada for ENTER faz a validação
[ô]Aqui você coloca sua rotina para validação e tratameto
End If
End Sub

Private Sub CPF_CNPJ_LostFocus()
[ô]Aqui você coloca sua rotina para validação e tratameto
End Sub

Private Sub CPF_CNPJ_AfterUpdate()
[ô]Aqui você coloca sua rotina para validação e tratameto
End Sub


O evento LostFocus ñao sei se existe no VBA, mas espero ter ajudado
MITSUEDA 12/12/2013 07:51:47
#432008
O evento LostFocus não existe no VBA.

Poderia ser criado um evento para simular esse evento, mas acho muito trabalho...

Acho mais pratico utilizar o evendo exit do controle

Private Sub CPF_CNPJ_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If VBA.Len(VBA.Trim(Me.CPF_CNPJ)) = 14 Then
[ô]Valida o CNPJ
MsgBox [Ô]CNPJ[Ô]
ElseIf VBA.Len(VBA.Trim(Me.CPF_CNPJ)) = 11 Then
[ô]Valida o CPF
MsgBox [Ô]CPF[Ô]
Else
[ô]Erro
MsgBox [Ô]Erro[Ô]
End If
End Sub

Espero ter ajudado.

Abraço
TUNUSAT 12/12/2013 12:27:12
#432020
JUVSOARE,


Ups, viajei. Desculpe.
Valew Mitsueda Fábio!


[][ô]s,
Tunusat.
Faça seu login para responder