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
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
se cpf for
ResponderExcluir00000000000
11111111111
22222222222
33333333333
44444444444
55555555555
66666666666
77777777777
88888888888
99999999999
sao validados incorretamente