Ir para conteúdo
Fórum Script Brasil
  • 0

Deixar textbox vazia sem dar erro


Gabriel Cabral

Pergunta

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!

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...