Olá pessoal....tenho uma rotina pra validar CPF e CNPJ
mas não to conseguindo deixar as textbox vazias quando preciso...
Deve ser alguma coisa na função mas eu não sei o que
aqui estão as funções e suas chamadas
'CPF em um modulo
Function FU_ValidaCPF(CPF As String) As Integer
Dim soma As Integer
Dim Resto As Integer
Dim i As Integer
CPF = Replace(CPF, ".", "")
CPF = Replace(CPF, "-", "")
CPF = Replace(CPF, "/", "")
'Valida argumento
If Len(CPF) <> 11 Then
FU_ValidaCPF = False
Exit Function
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
FU_ValidaCPF = 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
FU_ValidaCPF = False
Exit Function
End If
FU_ValidaCPF = True
End Function
'CPF - Chamada na textbox
Private Sub txtCli_CPF_LostFocus()
If FU_ValidaCPF(txtCli_CPF.Text) = 0 Then
txtCli_CPF.SetFocus
MsgBox "CPF Inválido", vbExclamation
End If
End Sub
'CNPJ em um modulo
Public Function FU_ValidaCNPJ(CNPJ As String) As Boolean
Dim retorno, a, j, i, d1, d2
CNPJ = Replace(CNPJ, ".", "")
CNPJ = Replace(CNPJ, "-", "")
CNPJ = Replace(CNPJ, "/", "")
If Len(CNPJ) = 8 And Val(CNPJ) > 0 Then
a = 0
j = 0
d1 = 0
For i = 1 To 7
a = Val(Mid(CNPJ, i, 1))
If (i Mod 2) <> 0 Then
a = a * 2
End If
If a > 9 Then
j = j + Int(a / 10) + (a Mod 10)
Else
j = j + a
End If
Next i
d1 = IIf((j Mod 10) <> 0, 10 - (j Mod 10), 0)
If d1 = Val(Mid(CNPJ, 8, 1)) Then
FU_ValidaCNPJ = True
Else
FU_ValidaCNPJ = False
End If
Else
If Len(CNPJ) = 14 And Val(CNPJ) > 0 Then
a = 0
i = 0
d1 = 0
d2 = 0
j = 5
For i = 1 To 12 Step 1
a = a + (Val(Mid(CNPJ, i, 1)) * j)
j = IIf(j > 2, j - 1, 9)
Next i
a = a Mod 11
d1 = IIf(a > 1, 11 - a, 0)
a = 0
i = 0
j = 6
For i = 1 To 13 Step 1
a = a + (Val(Mid(CNPJ, i, 1)) * j)
j = IIf(j > 2, j - 1, 9)
Next i
a = a Mod 11
d2 = IIf(a > 1, 11 - a, 0)
If (d1 = Val(Mid(CNPJ, 13, 1)) And d2 = Val(Mid(CNPJ, _
14, 1))) Then
FU_ValidaCNPJ = True
Else
FU_ValidaCNPJ = False
End If
Else
FU_ValidaCNPJ = False
End If
End If
End Function
CNPJ - Chamada na textbox
Private Sub txtCli_CNPJ_LostFocus()
Dim valor As String
valor = CStr(txtCli_CNPJ.Text)
FU_ValidaCNPJ valor
If (FU_ValidaCNPJ(txtCli_CNPJ.Text)) Then
txtCli_IE.SetFocus
Else
txtCli_CNPJ.SetFocus
MsgBox "CNPJ Inválido", vbExclamation
End If
End Sub
O que acontece é que se a textbox ficar vazia, sempre vai aparecer a MsgBox dizendo q o CPF ou CNPJ é inválido
Mas terá momentos em que eu precisarei que a textbox fique vazia.
O que fazer???
Se alguém tiver paciencia de olhar o codigo e puder me ajudar, muitíssimo obrigado!
Pergunta
Gabriel Cabral
Olá pessoal....tenho uma rotina pra validar CPF e CNPJ
mas não to conseguindo deixar as textbox vazias quando preciso...
Deve ser alguma coisa na função mas eu não sei o que
aqui estão as funções e suas chamadas
O que acontece é que se a textbox ficar vazia, sempre vai aparecer a MsgBox dizendo q o CPF ou CNPJ é inválido
Mas terá momentos em que eu precisarei que a textbox fique vazia.
O que fazer???
Se alguém tiver paciencia de olhar o codigo e puder me ajudar, muitíssimo obrigado!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.