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.
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.
Veja também: