Lição 08: Um exemplo prático - calculando o DV do CPF - Algoritmo:
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 DV 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 por: |
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 Resulta em uma divisão exata, com resto 0
Regra : Quando o resto é zero ou um , o DV é 0.
Quando o resto é diferente de zero ou um , o DV é obtido fazendo-se: 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 por: |
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 Resulta em (21), com resto 3
Regra : Quando o resto é zero ou um , o DV é 0.
Quando o resto é diferente de zero ou um , o DV é obtido fazendo-se: 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: 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.
Voltar ao início
| PRODUTOS RELACIONADOS - EXCEL |
| LIVROS |
VÍDEO-AULAS |
E-BOOKS |
|
|
|
|
|
|
|
Uma verdadeira especialização em Office, com 6208 páginas de conteúdo que vai do básico ao avançado, detalhadamente explicado e exemplificado. Desde os recursos básicos, passando pelos recursos avançados, pela criação de macros e pela automação de tarefas usando programação VBA.
Apenas: R$ 195,00 (valor do frete já incluído)
CLIQUE AQUI PARA SABER COMO COMPRAR ESTE CD |
|