VALIDAR CPF E CNPJ NUM MESMO TEXTBOX

MOREIRA 06/10/2009 12:09:32
#324576
bom dia.. preciso validar cpf e cnpj num mesmo txtbox.... mas antes de digitar na caixa de texto é escolhido em option pessoa fisica ou juridica

como posso fazer dessa forma..
ROBIU 06/10/2009 12:27:15
#324578
Se você já tem a função faz assim:
If OptCPF.Value = True Then
validarCPF (Text1.Text)[ô] Aqui você coloca sua função
ElseIf OptCNPJ.Value = True Then
ValidarCNPJ (Text1.Text)[ô]Sua Função aqui
Else
MsgBox [Ô]Informe se é pessoa física ou pessoa jurídica![Ô]
End If
EDERMIR 06/10/2009 13:09:40
#324587
[Ô]xupinhando[Ô] o código....
If len(text1.text)  < 12 Then
validarCPF (Text1.Text)[ô] Aqui você coloca sua função
else
ValidarCNPJ (Text1.Text)[ô]Sua Função aqui
end if
MARCELO.TREZE 07/10/2009 15:25:46
#324708
Resposta escolhida
vamos lá

[ô]Em um Modulo.bas


Global Formato As String, Numeros As String

Public Function ValidaCPF_CNPJ(Vl_CgcCpf As String)
[ô] Esta Rotina Devolverá True Se o Cgc/Cpf Informado For valido
[ô] ou False Se o Cgc/Cpf Não For Correto

ValidaCPF_CNPJ = False
Dim VA_CgcCpf As String
Dim VA_Digito As String
Static Numero(15) As Integer
Dim VA_Resto As Integer
Dim VA_Resultado As Integer
Dim VA_SomaDigito10 As Integer
Dim VA_resto1 As Integer

VA_CgcCpf = Format(SóNumeros(Vl_CgcCpf), [Ô]@@@@@@@@@@@@@@[Ô])
VA_Digito = Mid(VA_CgcCpf, 13, 2)
[ô]frmCritica_CPCCGC.LblVerificador.Caption = VA_Digito

Numero(1) = Val(Mid(VA_CgcCpf, 1, 1))
Numero(2) = Val(Mid(VA_CgcCpf, 2, 1))
Numero(3) = Val(Mid(VA_CgcCpf, 3, 1))
Numero(4) = Val(Mid(VA_CgcCpf, 4, 1))
Numero(5) = Val(Mid(VA_CgcCpf, 5, 1))
Numero(6) = Val(Mid(VA_CgcCpf, 6, 1))
Numero(7) = Val(Mid(VA_CgcCpf, 7, 1))
Numero(8) = Val(Mid(VA_CgcCpf, 8, 1))
Numero(9) = Val(Mid(VA_CgcCpf, 9, 1))
Numero(10) = Val(Mid(VA_CgcCpf, 10, 1))
Numero(11) = Val(Mid(VA_CgcCpf, 11, 1))
Numero(12) = Val(Mid(VA_CgcCpf, 12, 1))
Numero(13) = Val(Mid(VA_CgcCpf, 13, 1))
Numero(14) = Val(Mid(VA_CgcCpf, 14, 1))

If Len(Trim(VA_CgcCpf)) > 11 Then [ô] Cgc
Formato = Format(Numeros, [Ô]@@.@@@.@@@/@@@@-@@[Ô])


VA_Resultado = (Numero(1) * 5) + (Numero(2) * 4) _
+ (Numero(3) * 3) + (Numero(4) * 2) _
+ (Numero(5) * 9) + (Numero(6) * 8) + _
(Numero(7) * 7) + (Numero(8) * 6) + _
(Numero(9) * 5) + (Numero(10) * 4) + _
(Numero(11) * 3) + (Numero(12) * 2)
[ô] Atribui para resto o resto da divisão
[ô] de VA_resultado dividido por 11
VA_Resto = VA_Resultado Mod 11
If VA_Resto < 2 Then
VA_resto1 = 0
Else
VA_resto1 = 11 - VA_Resto
End If
If VA_resto1 <> Numero(13) Then
Exit Function
End If
VA_Resultado = (Numero(1) * 6) + _
(Numero(2) * 5) + (Numero(3) * 4) + _
(Numero(4) * 3) + (Numero(5) * 2) + _
(Numero(6) * 9) + (Numero(7) * 8) + _
(Numero(8) * 7) + (Numero(9) * 6) + _
(Numero(10) * 5) + (Numero(11) * 4) + _
(Numero(12) * 3) + (Numero(13) * 2)
[ô] Atribui para resto o resto da divisão
[ô] de VA_resultado dividido por 11
VA_Resto = VA_Resultado Mod 11
If VA_Resto < 2 Then
VA_resto1 = 0
Else
VA_resto1 = 11 - VA_Resto
End If
If VA_resto1 <> Numero(14) Then
Exit Function
End If
Else [ô] Cpf
Formato = Format(Numeros, [Ô]@@@.@@@.@@@ - @@[Ô])
VA_Resultado = (Numero(4) * 1) + (Numero(5) * 2) _
+ (Numero(6) * 3) + (Numero(7) * 4) _
+ (Numero(8) * 5) + (Numero(9) * 6) _
+ (Numero(10) * 7) + (Numero(11) * 8) + (Numero(12) * 9)
VA_Resto = VA_Resultado Mod 11

If VA_Resto > 9 Then
VA_resto1 = VA_Resto - 10
Else
VA_resto1 = VA_Resto
End If
[ô]frmCritica_CPCCGC.LblC1.Caption = VA_resto1
If VA_resto1 <> Numero(13) Then
GoTo Sairr
End If

VA_Resultado = (Numero(5) * 1) _
+ (Numero(6) * 2) + (Numero(7) * 3) _
+ (Numero(8) * 4) + (Numero(9) * 5) + _
(Numero(10) * 6) + (Numero(11) * 7) + _
(Numero(12) * 8) + (VA_resto1 * 9)
VA_Resto = VA_Resultado Mod 11
If VA_Resto > 9 Then
VA_resto1 = VA_Resto - 10
Else
VA_resto1 = VA_Resto
End If
[ô]frmCritica_CPCCGC.LblC2.Caption = VA_resto1
If VA_resto1 <> Numero(14) Then
Exit Function
End If

End If

ValidaCPF_CNPJ = True
Exit Function
Sairr:
VA_Resultado = (Numero(5) * 1) _
+ (Numero(6) * 2) + (Numero(7) * 3) _
+ (Numero(8) * 4) + (Numero(9) * 5) + _
(Numero(10) * 6) + (Numero(11) * 7) + _
(Numero(12) * 8) + (VA_resto1 * 9)
VA_Resto = VA_Resultado Mod 11
If VA_Resto > 9 Then
VA_resto1 = VA_Resto - 10
Else
VA_resto1 = VA_Resto
End If
[ô]frmCritica_CPCCGC.LblC2.Caption = VA_resto1
If VA_resto1 <> Numero(14) Then
Exit Function
End If

End Function


para chamar é assim

If ValidaCPF_CNPJ(Text1.Text) = False Then
MsgBox [Ô]CPF ou CNPJ Informado não é valido[Ô], 64
Text1.SetFocus
Exit Sub
Else
Text1.Text = Formato
End If



bom com a função acima não precisa nem do option, basta você digitar o numero do cpf ou cnpj que ele já verifica e valida
MOREIRA 07/10/2009 16:14:07
#324715

ola marcelo. coloquei da forma q vc postou...
1 - a string Sonumeros no modulo nao esta sendo encontrado
2 coloquei na caixa de texto coloquei assim..

Private Sub Txtcpf_cnpj_LostFocus()
If ValidaCPF_CNPJ(Txtcpf_cnpj.Text) = False Then
MsgBox [Ô]CPF ou CNPJ Informado não é valido[Ô], 64
Txtcpf_cnpj.SetFocus
Exit Sub
Else
Txtcpf_cnpj.Text = Formato
End If
End Sub

mas nao esta funcionando...

ao digitar o CPF OU CNPJ..
MARCELO.TREZE 07/10/2009 16:33:35
#324720
copie denovo o código acima que eu reeditei
MOREIRA 07/10/2009 17:03:31
#324721
ainda com esse erro

((( Sub or Funtions not Defined ))

VA_CgcCpf = Format(SóNumeros(Vl_CgcCpf), [Ô]@@@@@@@@@@@@@@[Ô])

obs: O SóNumeros

MOREIRA 07/10/2009 17:18:23
#324723
apos o lostfocus. a caixa de texto fica vazia..
MARCELO.TREZE 08/10/2009 10:06:07
#324787
desculpe colega eu não sei o que fiz com o código mas eis um exemplo dele funcional

MOREIRA 08/10/2009 11:27:07
#324800
ola marcelo, obrigado pela atenção mais uma vez... funcionou perteito
Tópico encerrado , respostas não são mais permitidas