NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Quer Receber Novidades e E-books Gratuitos de Excel? * Junte-se a mais de 103.000 pessoas!

Curso Grátis de Excel Avançado - Módulo 6 - Lição: Um exemplo prático - calculando o DV do CPF - Algoritmo

120 Lições | Gratuito Online | Autor: Júlio Battisti


Nessa e nas próximas duas lições, veremos o uso do VBA para solucionar um exemplo prático. Vamos criar uma função personalizada, chamada ValidaCPF. Em seguida usaremos essa função para fazer o cálculo do Dígito Verificador de um conjunto de CPFs:

Importante: O algoritmo de cálculo do DV de CPFs e CNPJs é de domínio público, já tendo sido publicado no diário oficial da união e em diversas revistas de informática, de circulação nacional.

Nessa lição explicarei como funciona o cálculo do DV do CPF.

Como calcular o DV do CPF

Para entender o algoritmo de cálculo do CPF vamos utilizar um exemplo prático.

Considere o seguinte CPF (sem o DV):

333.444.555

Posição 1 2 3 4 5 6 7 8 9
Número 3 3 3 4 4 4 5 5 5

Começamos a multiplicar os dígitos do CPF, a partir da posição 9, ou seja, de trás para frente, por 2, 3, 4, 5 e assim por diante, conforme indicado na tabela a seguir:

Posição 1 2 3 4 5 6 7 8 9
Número 3 3 3 4 4 4 5 5 5
Multiplica 10 9 8 7 6 5 4 3 2
Resultado 30 27 24 28 24 20 20 15 10

Somo os resultados obtidos na quarta linha da tabela anterior:

Soma1 = 30+27+24+28+24+20+20+15+10
Soma1 = 198

Faço a divisão desta soma por 11 e determino o resto da divisão:

198/11

Que resulta em uma divisão exata, com resto 0

Regra: Quando o resto é 0 ou 1, o DV é 0.

Quando o resto é diferente de 0 ou 1, o DV é obtido subtraindo: 11-resto

Neste caso como o resto foi zero, o primeiro DV é zero:

DV1=0

O DV1 calculado passa a fazer parte do CPF, conforme indicado pela tabela a seguir:

Posição 1 2 3 4 5 6 7 8 9 10
Número 3 3 3 4 4 4 5 5 5 0

Agora repetimos o processo anterior, porém já considerando o DV1 como parte integrante do CPF, conforme indicado pela tabela a seguir:

Posição 1 2 3 4 5 6 7 8 9 10
Número 3 3 3 4 4 4 5 5 5 0
Multiplica 11 10 9 8 7 6 5 4 3 2
Resultado 33 30 27 32 28 24 25 20 15 0

Somo os resultados obtidos na quarta linha da tabela anterior:

Soma2 = 33+30+27+32+28+24+25+20+15+0
Soma1 = 234

Faço a divisão desta soma por 11 e determino o resto da divisão:

234/11

que resulta em (21), com resto 3.

Regra: Quando o resto é 0 ou 1, o DV é 0.

Quando o resto é diferente de 0 ou 1, o DV é obtido subtraindo: 11-resto

Neste caso como o resto foi 3, o segundo DV é:

DV2 = 11 - 3 DV2 = 8

Com isso o CPF, já com os dois DVs fica conforme indicado na tabela a seguir:

Posição 1 2 3 4 5 6 7 8 9 10 11
Número 3 3 3 4 4 4 5 5 5 0 8

Ou seja, o CPF final é:

333.444.555-08

Os algoritmos para cálculo dos DVs do CNPJ são praticamente iguais. A única diferença é a quantidade de dígitos do CNPJ é diferente do CPF.

[LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI