Validar CPF no Excel

Como implementar a validação do CPF no Excel

Durante o processo de desenvolvimento de sistemas para a web, muitas vezes se faz necessário o uso de CPFs válido para realização de testes. Diante desse cenário, uma opção que acaba sendo viável é a tentativa de validar CPF em Excel VBA.

código VBA para validar cpf no excel

Sabendo disso, portanto, neste conteúdo em particular vamos nos focar em apresentar o processo necessário para que isso ocorra de acordo com o pretendido. Isso inclui trabalho com auxílio efetivo do visual basic.

Validar CPF em Excel com VBA

Antes de qualquer outra coisa é importante notar que o modelo usado aqui também leva em consideração o algoritmo do CPF (o mesmo que empregamos em nossa ferramenta online para criar CPF). Ele é fundamental para determinar se um número é ou não válido.

Dito isso, o caminho que seguimos é aquele onde a função VBA é utilizada para validar o dígito verificador do CPF. Para entendimento prático disso, portanto, tomamos como exemplo um CPF fictício cujo número é: 038.277.936-37.

A primeira regra para confirmar o primeiro dígito, portanto, é fazer a multiplicação dos números que ficam antes do traço por uma sequência regressiva de 2 a 10, somando na sequência o resultado.

Depois disso é preciso fazer a divisão do valor obtido por 11 e guardar o que chamamos de RESTO da divisão. Com base nesses cálculos, temos então 239 como resultado da soma, que após a divisão por 11 resulta em um RESTO que é 8.

Vale destacar aqui que, quando o resto do valor dividido é inferior a 2, o valor então é 0, no entanto, quando é superior é preciso fazer o cálculo 11- com esse resto.

Nesse caso, como foi 8, portanto, a questão fica assim: 11-8 = 3.

Cálculo do segundo dígito verificador

Entendida a primeira parte e confirmado a validade do primeiro dígito, é hora de verificar o segundo. Para isso é preciso multiplicar os primeiros 10 números pela sequência regressiva de 2 a 10, somando na sequência o resultado.

Depois é preciso fazer a divisão do valor total por 11 novamente para chegar ao valor do RESTO da divisão, que novamente o que interessa.

No caso do nosso exemplo temos 290 em uma divisão por 11, onde o resto termina sendo 4.

Seguindo a mesma regra onde valores de RESTO inferior a 2 é 0 e superior é calculado com 11-, a questão fica da seguinte forma: 11-4 = 7.

Com base nisso, o dígito verificador do sistema nesse exemplo que utilizamos é 37.

Vale dizer que para validar a função de Validar CPF no Excel é preciso instalar a função pressionando ALT + F11. Na sequência é só clicar em inserir -> Módulo.

Usando o código do VB:

'Função que valida CPF
Public Function lfValidaCPF(ByVal lNumCPF As String) As Boolean
    Application.Volatile
    
    Dim lMultiplicador  As Integer
    Dim lDv1            As Integer
    Dim lDv2            As Integer
    
    lMultiplicador = 2
    
    'Realiza o preenchimento dos zeros á esquerda
    lNumCPF = String(11 - Len(lNumCPF), "0") & lNumCPF
    
    'Realiza o cálculo do dividendo para o dv1 e o dv2
    For i = 9 To 1 Step -1
        lDv1 = (Mid(lNumCPF, i, 1) * lMultiplicador) + lDv1
        
        lDv2 = (Mid(lNumCPF, i, 1) * (lMultiplicador + 1)) + lDv2
        
        lMultiplicador = lMultiplicador + 1
    Next
    
    'Realiza o cálculo para chegar no primeiro dígio
    lDv1 = lDv1 Mod 11
    
    If lDv1 >= 2 Then
        lDv1 = 11 - lDv1
    Else
        lDv1 = 0
    End If
    
    'Realiza o cálculo para chegar no segundo dígido
    lDv2 = lDv2 + (lDv1 * 2)
    
    lDv2 = lDv2 Mod 11
    
    If lDv2 >= 2 Then
        lDv2 = 11 - lDv2
    Else
        lDv2 = 0
    End If
    
    'Realiza a validação e retorna na função
    If Right(lNumCPF, 2) = CStr(lDv1) & CStr(lDv2) Then
        lfValidaCPF = True
    Else
        lfValidaCPF = False
    End If
End Function

Com o módulo criado é só colar o código VBA. O uso da função é simples e para isso basta clicar em qualquer lugar da planilha do Excel e digitar lfValidaCPF, passando o número conforme mostrado a seguir.

usar a fórmula para validar o cpf no excel

Veja também: