Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos,eu estou tentando implementar um código para validar o cpf no evento lostfocus(),mas quando eu testo,se eu deixar o campo vazio ele dá pau,já tentei tratar isso mas não deu certo, o código está aí:
>
Public Function fuValidaCpf(cpf As String) As Boolean
Dim i As Integer
Dim campo As String 'armazena o CPF que será utilizada para o cálculo
Dim caracter As String 'armazena os digitos do CPF da direita para a esquerda
Dim numero As Integer 'armazena o digito separado para cálculo (uma a um)
Dim mais As Integer 'armazena o digito específico multiplicado pela sua base
Dim soma As Long 'armazena a soma dos digitos multiplicados pela sua base(mais)
Dim divisao As Double 'armazena a divisão dos digitos*base por 11
Dim inteiro As Long 'armazena inteiro da divisão
Dim resto As Integer 'armazena o resto
Dim dig1 As Integer 'armazena o 1º digito verificador
Dim dig2 As Integer 'armazena o 2º digito verificador
Dim conf As String 'armazena o digito verificador
'Verifica se o cpf é vazio
If cpf = "" Then
'Então abandona a função
Exit Function
End If
soma = 0
numero = 0
mais = 0
campo = Left(cpf, 9)
'Inicia cálculos do 1º dígito
For i = 2 To 10
caracter = Right(campo, i - 1)
numero = Left(caracter, 1)
mais = numero * i
soma = soma + mais
Next i
divisao = soma / 11
inteiro = Int(divisao) * 11
resto = soma - inteiro
If resto = 0 Or resto = 1 Then
dig1 = 0
Else
dig1 = 11 - resto
End If
campo = campo & dig1
soma = 0
numero = 0
mais = 0
'Inicia cálculos do 2º dígito
For i = 2 To 11
caracter = Right(campo, i - 1)
numero = Left(caracter, 1)
mais = numero * i
soma = soma + mais
Next i
divisao = soma / 11
inteiro = Int(divisao) * 11
resto = soma - inteiro
If resto = 0 Or resto = 1 Then
dig2 = 0
Else
dig2 = 11 - resto
End If
conf = dig1 & dig2
'Caso o CPF esteja errado dispara a mensagem
If conf <> Right(cpf, 2) Then
fuValidaCpf = False
Else
fuValidaCpf = True
End If
Exit Function
End Function
Código do maskedbox:
>
If Not fuValidaCpf(mskCpf) Then
MsgBox "CPF incorreto !"
mskCpf = ""
Call fuFormataCpf(mskCpf)
mskCpf.SetFocus
Exit Sub
End If
Por favor,será que alguém pode me ajudar???
Carregando comentários...