Função VBA - Validador Dígito CPF

Nesta postagem estou disponibilizando o código da Função VBA, ou seja, Fórmula personalizada para validação do dígito verificador de CPF.

Pressione Alt+F11

Menu>Inserir>Módulo

Cole o Código Abaixo:



Public Function VALIDADOR_CPF(CPF As String) As String
   
    'Declaração de Variáveis dos Dígitos do CPF
    Dim VarDigito1 As Integer
    Dim VarDigito2 As Integer
    Dim VarDigito3 As Integer
    Dim VarDigito4 As Integer
    Dim VarDigito5 As Integer
    Dim VarDigito6 As Integer
    Dim VarDigito7 As Integer
    Dim VarDigito8 As Integer
    Dim VarDigito9 As Integer
    Dim VarDigito10 As Integer
    Dim VarDigito11 As Integer
   
    'Variáveis de Cálculo do Dígito
    Dim Soma1 As Integer
    Dim Soma2 As Integer
    Dim Resto As Integer
    Dim Resto1 As Integer
    Dim Resto2 As Integer
    Dim Digito1 As Integer
    Dim Digito2 As Integer
   
    If Not (IsNull(CPF)) Then
   
        VarDigito1 = Val(Mid$(CPF, 1, 1))
        VarDigito2 = Val(Mid$(CPF, 2, 1))
        VarDigito3 = Val(Mid$(CPF, 3, 1))
        VarDigito4 = Val(Mid$(CPF, 4, 1))
        VarDigito5 = Val(Mid$(CPF, 5, 1))
        VarDigito6 = Val(Mid$(CPF, 6, 1))
        VarDigito7 = Val(Mid$(CPF, 7, 1))
        VarDigito8 = Val(Mid$(CPF, 8, 1))
        VarDigito9 = Val(Mid$(CPF, 9, 1))
        VarDigito10 = Val(Mid$(CPF, 10, 1))
        VarDigito11 = Val(Mid$(CPF, 11, 1))
   
    'Cálculo do Primeiro Dígito
    Soma1 = ((VarDigito1 * 10) + (VarDigito2 * 9) + (VarDigito3 * 8) + (VarDigito4 * 7) + _
    (VarDigito5 * 6) + (VarDigito6 * 5) + (VarDigito7 * 4) + (VarDigito8 * 3) + (VarDigito9 * 2))
    Resto1 = (Soma1 Mod 11)
   
    If (Resto1 <= 1) Then
       
        Digito1 = 0
       
    Else
   
    Digito1 = 11 - Resto1
   
    End If
   
    'Cálculo do Segundo Dígito
    Soma2 = ((VarDigito1 * 11) + (VarDigito2 * 10) + (VarDigito3 * 9) + (VarDigito4 * 8) + _
    (VarDigito5 * 7) + (VarDigito6 * 6) + (VarDigito7 * 5) + (VarDigito8 * 4) + (VarDigito9 * 3) + (Digito1 * 2))
   
    Resto2 = (Soma2 Mod 11)
   
    If (Resto2 <= 1) Then
   
        Digito2 = 0
   
    Else
       
        Digito2 = 11 - Resto2
   
    End If
   
    'Validação dos Resultados
   
     If ((Digito1 <> VarDigito10) Or (Digito2 <> VarDigito11)) Then
   
     VALIDADOR_CPF = "Inválido"
   
     Else
   
     VALIDADOR_CPF = "Válido"
   
     End If
   
   
    End If
   
   
End Function


Comentários

  1. se cpf for
    00000000000
    11111111111
    22222222222
    33333333333
    44444444444
    55555555555
    66666666666
    77777777777
    88888888888
    99999999999

    sao validados incorretamente

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Função VBA - Validador de CNPJ

Autocorreção no Excel - Eu Escrevo e o Excel Corrige.

Função VBA - Busca Distância Entre Cidades