ROTINA DE VALIDACAO DE RG ,CPF E CNPJ

USUARIO.EXCLUIDOS 12/03/2005 21:42:07
#72669
Gente Estou Precisando de uma Rotina pra validar RG, CPF e CNPJ

Agradeço desde Já

Abraços
FELIPEA 12/03/2005 21:54:31
#72670
No site dever mtos exemplos de validação ;)
CLINS 12/03/2005 22:16:29
#72676
Me manda um e-mail que segnda te mando do trabalho a validação de CPF.
MARCELO.VB.PIRA 12/03/2005 22:43:16
#72688
Public Function ValidaCNPJ(CNPJ As String) ' retorna True quando OK
10 On Error GoTo ValidaCNPJ_Error

20 If Trim(CNPJ) = "" Then ValidaCNPJ = True: CnpjOk = "": Exit Function
30 CNPJ = FiltroNumero(CNPJ)

40 Dim Soma As Integer
50 Dim Dígito1, Dígito2 As Integer
60 Dim Resto As Integer

70 ValidaCNPJ = False ' considera errado a priori
80 CnpjOk = ""

90 If Len(CNPJ) <> 14 Then
100 Exit Function
110 End If
' calcula o primeiro dígito
120 Soma = 0
130 Soma = Soma + Val(Mid(CNPJ, 1, 1)) * 5
140 Soma = Soma + Val(Mid(CNPJ, 2, 1)) * 4
150 Soma = Soma + Val(Mid(CNPJ, 3, 1)) * 3
160 Soma = Soma + Val(Mid(CNPJ, 4, 1)) * 2
170 Soma = Soma + Val(Mid(CNPJ, 5, 1)) * 9
180 Soma = Soma + Val(Mid(CNPJ, 6, 1)) * 8
190 Soma = Soma + Val(Mid(CNPJ, 7, 1)) * 7
200 Soma = Soma + Val(Mid(CNPJ, 8, 1)) * 6
210 Soma = Soma + Val(Mid(CNPJ, 9, 1)) * 5
220 Soma = Soma + Val(Mid(CNPJ, 10, 1)) * 4
230 Soma = Soma + Val(Mid(CNPJ, 11, 1)) * 3
240 Soma = Soma + Val(Mid(CNPJ, 12, 1)) * 2

250 Resto = Soma Mod 11
260 Dígito1 = IIf(Resto = 0 Or Resto = 1, 0, 11 - Resto)

' calcula o segundo dígito
270 Soma = 0
280 Soma = Soma + Val(Mid(CNPJ, 1, 1)) * 6
290 Soma = Soma + Val(Mid(CNPJ, 2, 1)) * 5
300 Soma = Soma + Val(Mid(CNPJ, 3, 1)) * 4
310 Soma = Soma + Val(Mid(CNPJ, 4, 1)) * 3
320 Soma = Soma + Val(Mid(CNPJ, 5, 1)) * 2
330 Soma = Soma + Val(Mid(CNPJ, 6, 1)) * 9
340 Soma = Soma + Val(Mid(CNPJ, 7, 1)) * 8
350 Soma = Soma + Val(Mid(CNPJ, 8, 1)) * 7
360 Soma = Soma + Val(Mid(CNPJ, 9, 1)) * 6
370 Soma = Soma + Val(Mid(CNPJ, 10, 1)) * 5
380 Soma = Soma + Val(Mid(CNPJ, 11, 1)) * 4
390 Soma = Soma + Val(Mid(CNPJ, 12, 1)) * 3
400 Soma = Soma + Dígito1 * 2

410 Resto = Soma Mod 11
420 Dígito2 = IIf(Resto = 0 Or Resto = 1, 0, 11 - Resto)

430 If Dígito1 = Val(Mid(CNPJ, 13, 1)) And Dígito2 = Val(Mid(CNPJ, 14, 1)) Then
440 ValidaCNPJ = True
450 CnpjOk = Mid(FiltroNumero(CNPJ), 1, 2) + "." + Mid(FiltroNumero(CNPJ), 3, 3) + "." + Mid(FiltroNumero(CNPJ), 6, 3) + "/" + Mid(FiltroNumero(CNPJ), 9, 4) + "-" + Mid(FiltroNumero(CNPJ), 13, 2)
460 End If

470 On Error GoTo 0
480 Exit Function

ValidaCNPJ_Error:

490 MsgBox "Ocorreu um Erro de número " & Err.Number & " (" & Err.Description & ") na linha " & Erl & " do(a) Function ValidaCNPJ inserido no(a) Módulo Varios em Controle_Comercial," & Time & "," & Date & "," & NomeUsuario & ",Máquina " & MaquinaEstacao & ",Empresa " & Vnomefantasia & ",Drive " & DriveTrabalho
500 Call LogarErros("Ocorreu um Erro de número " + Str(Err.Number) + " (" + Err.Description + ") na linha " + Str(Erl) + " do(a) Function ValidaCNPJ inserido no(a) Módulo Varios em Controle_Comercial," + Str(Time) + "," + Str(Date) + "," + NomeUsuario + ",Máquina " + Str(MaquinaEstacao) + "," + Vnomefantasia + "," + DriveTrabalho)
End Function
Public Function ValidaCPF(ByVal CPF As String) ' retorna True quando OK
10 On Error GoTo ValidaCPF_Error

'Rotina que valida CPF

20 If Trim(CPF) = "" Then
30 ValidaCPF = True
40 CpfOk = ""
50 Exit Function
60 End If
70 CPF = FiltroNumero(CPF)
80 Dim Soma As Integer
90 Dim Dígito1, Dígito2 As Integer
100 Dim Resto As Integer
110 ValidaCPF = False ' considera errado a priori
120 CpfOk = ""

130 If Not IsNumeric(CPF) Or Len(CPF) <> 11 Or _
CPF = "11111111111" Or CPF = "22222222222" Or CPF = "33333333333" Or _
CPF = "44444444444" Or CPF = "55555555555" Or CPF = "66666666666" Or _
CPF = "77777777777" Or CPF = "88888888888" Or CPF = "99999999999" Or _
CPF = "00000000000" Then
140 Exit Function
150 End If
'calcula o primeiro dígito
'soma até o oitavo algarismo
160 Soma = 0
170 Soma = Soma + Val(Mid(CPF, 9, 1)) * 2
180 Soma = Soma + Val(Mid(CPF, 8, 1)) * 3
190 Soma = Soma + Val(Mid(CPF, 7, 1)) * 4
200 Soma = Soma + Val(Mid(CPF, 6, 1)) * 5
210 Soma = Soma + Val(Mid(CPF, 5, 1)) * 6
220 Soma = Soma + Val(Mid(CPF, 4, 1)) * 7
230 Soma = Soma + Val(Mid(CPF, 3, 1)) * 8
240 Soma = Soma + Val(Mid(CPF, 2, 1)) * 9
250 Soma = Soma + Val(Mid(CPF, 1, 1)) * 10
260 Resto = Soma Mod 11
270 Dígito1 = IIf(Resto = 0 Or Resto = 1, 0, 11 - Resto)
'calcula o segundo dígito
280 Soma = 0
290 Soma = Soma + Val(Mid(CPF, 10, 1)) * 2
300 Soma = Soma + Val(Mid(CPF, 9, 1)) * 3
310 Soma = Soma + Val(Mid(CPF, 8, 1)) * 4
320 Soma = Soma + Val(Mid(CPF, 7, 1)) * 5
330 Soma = Soma + Val(Mid(CPF, 6, 1)) * 6
340 Soma = Soma + Val(Mid(CPF, 5, 1)) * 7
350 Soma = Soma + Val(Mid(CPF, 4, 1)) * 8
360 Soma = Soma + Val(Mid(CPF, 3, 1)) * 9
370 Soma = Soma + Val(Mid(CPF, 2, 1)) * 10
380 Soma = Soma + Val(Mid(CPF, 1, 1)) * 11
390 Resto = Soma Mod 11
400 Dígito2 = IIf(Resto = 0 Or Resto = 1, 0, 11 - Resto)
410 If Dígito1 = Val(Mid(CPF, 10, 1)) And Dígito2 = Val(Mid(CPF, 11, 1)) Then
420 ValidaCPF = True
430 CpfOk = Mid(FiltroNumero(CPF), 1, 3) + "." + Mid(FiltroNumero(CPF), 4, 3) + "." + Mid(FiltroNumero(CPF), 7, 3) + "-" + Mid(FiltroNumero(CPF), 10, 2)
440 End If

450 On Error GoTo 0
460 Exit Function

ValidaCPF_Error:

470 MsgBox "Ocorreu um Erro de número " & Err.Number & " (" & Err.Description & ") na linha " & Erl & " do(a) Function ValidaCPF inserido no(a) Módulo Varios em Controle_Comercial," & Time & "," & Date & "," & NomeUsuario & ",Máquina " & MaquinaEstacao & ",Empresa " & Vnomefantasia & ",Drive " & DriveTrabalho
480 Call LogarErros("Ocorreu um Erro de número " + Str(Err.Number) + " (" + Err.Description + ") na linha " + Str(Erl) + " do(a) Function ValidaCPF inserido no(a) Módulo Varios em Controle_Comercial," + Str(Time) + "," + Str(Date) + "," + NomeUsuario + ",Máquina " + Str(MaquinaEstacao) + "," + Vnomefantasia + "," + DriveTrabalho)

End Function
FELIPEA 12/03/2005 22:44:49
#72690
[S32][S32][S32][S32][S32][S32][S32]
é necessario tanto?!

Alias: gostei da sua foto
MARCELO.VB.PIRA 12/03/2005 22:51:34
#72695
bom... a única coisa que daria para enxugar seria a ultima linha da rotina de tratamento de erro... que na verdade serve para criar um TXT com todos os erros q acontecem no programa...

para evitar o FDP do usuario te mandar um e-mail assim:]

"olha, deu um erro q não sei explicar, não sei onde e tinha uma mensagem q eu não decorei..."

:)))))))))))))

assim, ele te manda este txt e tem todas as merdas q aconteceram, no sistema...

e quanto a foto, vou por outras ttb,... hehehehe... essa ta causando muito "frisson"
LCSD 12/03/2005 22:56:51
#72701
Resposta escolhida
Marcelo e Cardoso

Algumas rotinas como CPF e CNPJ tem no site, é só procurar no Localizar!
[S95]

Public Function CPFValido(CPF As String) As Boolean
Dim Soma As Integer
Dim Resto As Integer
Dim I As Integer

If Val(CPF) = 0 Then
CPFValido = False
Exit Function
End If

If Len(CPF) < 11 Then
CPF = Format(Val(CPF), "00000000000")
End If

Soma = 0
For I = 1 To 9
Soma = Soma + Val(Mid$(CPF, I, 1)) * (11 - I)
Next I
Resto = 11 - (Soma - (Int(Soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid(CPF, 10, 1)) Then
CPFValido = False
Exit Function
End If

Soma = 0
For I = 1 To 10
Soma = Soma + Val(Mid$(CPF, I, 1)) * (12 - I)
Next I
Resto = 11 - (Soma - (Int(Soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid(CPF, 11, 1)) Then
CPFValido = False
Exit Function
End If
CPFValido = True
End FunctionIf
CPFValido = True
End Function


Disponível no Link VALIDAR CPF - WebMaster

é só dar uma vasculhada!
[s79]
Tópico encerrado , respostas não são mais permitidas