Validar CPF, CNPJ e Título de Eleitor

14
Validar CPF, CNPJ e Título de Eleitor (Parte I) Escrito por: Reinaldo Coral Ensinarei hoje como verificar a validade de um número de CPF, CNPJ ou Título de eleitor. Para quem lida diariamente com cadastros de clientes , fornecedores e tudo mais, sabe da importância de uma verficação como esta. Muitas vezes podemos falar e digitar um número importantes destes de maneira errada. A partir daí você já pode imaginar a dor de cabeça que um simples numerozinho desses pode gerar! Pensando nisso, elaborei para o uso na planilha do excel uma validação desses números. A forma de calcular já é de saber público e facilmente encontrada na internet. O que fiz foi desenvolver uma função de cálculo e análise desse algorítimo através do VBA do Excel. Então… Mãos à obra!!! 1 – Validação de número de CPF (Cadastro de Pessoa Física). Primeiramente vamos entender como se obtém o algorítimo do DV(Dígito Verificador) de um CPF. O algorítimo para calcular um CPF válido é feito em duas etapas. Primeiro conseguimos o valor para o primeiro digito verificador. Ele é obtido através do resto da divisão por 11 da soma da multiplicação de cada um dos 9 primeiros algarismos, respectivamente, por 1, 2, 3, 4, 5, 6, 7, 8 e 9. Complicado? Vejamos a ilustração. Posição 1 2 3 4 5 6 7 8 9 10 11 CPF 5 5 5 2 2 2 3 3 3 0 3 Multiplicar por 1 2 3 4 5 6 7 8 9 Resultado a somar 5 + 10 + 15 + 8 + 10 + 12 + 21 + 24 + 27 =132 Obtendo o resto da divisão por 11 ==> 132 / 11 = 12 resto 0. Com isso, conseguimos o primeiro dígito verificador (0). Para o segundo dígito verificador, o procedimento é bem parecido, só acrescentamos ao somatório a multiplicação pelo primeiro dígito obtido anteriormente. Ficará assim: Posição 1 2 3 4 5 6 7 8 9 10 11 CPF 5 5 5 2 2 2 3 3 3 0 3 Multiplicar por 0 1 2 3 4 5 6 7 8 9 Resultado a somar 0 + 5 + 10 + 6 + 8 + 10 + 18 + 21 + 24 + 0 =102 Obtendo o resto da divisão por 11 ==> 102 / 11 = 9 resto 3. Agora, conseguimos o segundo dígito verificador (3). Portanto, o DV para este CPF é 03. Bem, eu precisava esclarecer um pouco como funciona o cálculo deste algoritimo para que você pudesse entender como trabalharíamos o código. Então, podemos agora, partir para o seu desenvolvimento. Basicamente, desmembraremos o cpf em algarismos, executaremos as operações matemáticas e, por fim, efetuaremos a comparação dos DVs obtidos com o algorítimo com os DVs fornecidos no CPF analizado. Vá ao ambiente de desenvolvimento do VBA (Alt+F11), insira um novo módulo e digite o código abaixo. 01 Public Function VerificarCPF(sCPF As String) As Str ing

Transcript of Validar CPF, CNPJ e Título de Eleitor

Page 1: Validar CPF, CNPJ e Título de Eleitor

Validar CPF, CNPJ e Título de Eleitor (Parte I)Escrito por: Reinaldo Coral

Ensinarei hoje como verificar a validade de um número de CPF, CNPJ ou Título de eleitor. Para quem lida diariamente com cadastros de clientes, fornecedores e tudo mais, sabe da importância de uma verficação como esta. Muitas vezes podemos falar e digitar um número importantes destes de maneira errada. A partir daí você já pode imaginar a dor de cabeça que um simples numerozinho desses pode gerar!Pensando nisso, elaborei para o uso na planilha do excel uma validação desses números. A forma de calcular já é de saber público e facilmente encontrada na internet. O que fiz foi desenvolver uma função de cálculo e análise desse algorítimo através do VBA do Excel.

Então… Mãos à obra!!!1 – Validação de número de CPF (Cadastro de Pessoa Física).Primeiramente vamos entender como se obtém o algorítimo do DV(Dígito Verificador) de um CPF.O algorítimo para calcular um CPF válido é feito em duas etapas. Primeiro conseguimos o valor para o primeiro digito verificador. Ele é obtido através do resto da divisão por 11 da soma da multiplicação de cada um dos 9 primeiros algarismos, respectivamente, por 1, 2, 3, 4, 5, 6, 7, 8 e 9. Complicado? Vejamos a ilustração.Posição 1 2 3 4 5 6 7 8 9 10 11CPF 5 5 5 2 2 2 3 3 3 0 3Multiplicar por 1 2 3 4 5 6 7 8 9Resultado a somar 5 + 10 + 15 + 8 + 10 + 12 + 21 + 24 + 27 =132Obtendo o resto da divisão por 11 ==> 132 / 11 = 12 resto 0.Com isso, conseguimos o primeiro dígito verificador (0). Para o segundo dígito verificador, o procedimento é bem parecido, só acrescentamos ao somatório a multiplicação pelo primeiro dígito obtido anteriormente. Ficará assim:Posição 1 2 3 4 5 6 7 8 9 10 11CPF 5 5 5 2 2 2 3 3 3 0 3Multiplicar por 0 1 2 3 4 5 6 7 8 9Resultado a somar 0 + 5 + 10 + 6 + 8 + 10 + 18 + 21 + 24 + 0 =102Obtendo o resto da divisão por 11 ==> 102 / 11 = 9 resto 3.Agora, conseguimos o segundo dígito verificador (3). Portanto, o DV para este CPF é 03.Bem, eu precisava esclarecer um pouco como funciona o cálculo deste algoritimo para que você pudesse entender como trabalharíamos o código. Então, podemos agora, partir para o seu desenvolvimento.Basicamente, desmembraremos o cpf em algarismos, executaremos as operações matemáticas e, por fim, efetuaremos a comparação dos DVs obtidos com o algorítimo com os DVs fornecidos no CPF analizado.Vá ao ambiente de desenvolvimento do VBA (Alt+F11), insira um novo módulo e digite o código abaixo.01 Public Function VerificarCPF(sCPF As String) As String

02 Dim d1 As Integer

03 Dim d2 As Integer04 Dim d3 As Integer05 Dim d4 As Integer06 Dim d5 As Integer07 Dim d6 As Integer08 Dim d7 As Integer

Page 2: Validar CPF, CNPJ e Título de Eleitor

09 Dim d8 As Integer10 Dim d9 As Integer11 Dim d10 As Integer12 Dim d11 As Integer13 Dim DV1 As Integer14 Dim DV2 As Integer15 Dim UltDig As Integer

16  

17 'Completa com zeros à esquerda caso não esteja com os 11 digitos

18 If Len(sCPF) < 11 Then

19     sCPF = String(11 - Len(sCPF), "0") & sCPF

20 End If

21  

22 'Pega a posição do último dígito23 UltDig = Len(sCPF)

24  

25 'Sai da função caso a célula esteja vazia

26 If sCPF = "00000000000" Then

27     VerificarCPF = ""

28     Exit Function

29 End If

30  

31 'Pega cada dígito do CPF informado e

32 'coloca nas variáveis específicas

33  

34 d1 = CInt(Mid(sCPF, UltDig - 10, 1))35 d2 = CInt(Mid(sCPF, UltDig - 9, 1))36 d3 = CInt(Mid(sCPF, UltDig - 8, 1))37 d4 = CInt(Mid(sCPF, UltDig - 7, 1))38 d5 = CInt(Mid(sCPF, UltDig - 6, 1))39 d6 = CInt(Mid(sCPF, UltDig - 5, 1))40 d7 = CInt(Mid(sCPF, UltDig - 4, 1))41 d8 = CInt(Mid(sCPF, UltDig - 3, 1))42 d9 = CInt(Mid(sCPF, UltDig - 2, 1))43 d10 = CInt(Mid(sCPF, UltDig - 1, 1))    '<----- Aqui são os DVs informados

44 d11 = CInt(Mid(sCPF, UltDig, 1))    '<----- no CPF analizado

45  

46 '----------- Aqui é executado o calculo para obter os digitos verificadores corretos

47 DV1 = d1 + (d2 * 2) + (d3 * 3) + (d4 * 4) + (d5 * 5) + (d6 * 6) + (d7 * 7) + (d8 * 8) + (d9 * 9)

48 DV1 = DV1 Mod 11    'Obtem o resto

49 'se o resto for igual a 10 altera pra 0

50 If DV1 = 10 Then

51     DV1 = 0

52 End If

Page 3: Validar CPF, CNPJ e Título de Eleitor

53  

54 DV2 = d2 + (d3 * 2) + (d4 * 3) + (d5 * 4) + (d6 * 5) + (d7 * 6) + (d8 * 7) + (d9 * 8) + (DV1 * 9)

55 DV2 = DV2 Mod 11    'Obtem o resto

56 'se o resto for igual a 10 altera pra 0

57 If DV2 = 10 Then

58     DV2 = 0

59 End If

60  

61 '---------- Fazendo a comparação dos dvs informados -------

62 If d10 = DV1 And d11 = DV2 Then

63     VerificarCPF = "CPF Válido"

64 Else

65     VerificarCPF = "CPF Inválido"

66 End If

67  

68 End FunctionRetorne à planilha e para chamar a função na célula, digite:=VerificarCPF(A1)Supondo que na célula A1 contenha um número de CPF.Até que parecia mais difícil né? Mas é simples. O chato é a matemática! (risos)2 - Validação de número de CNPJ (Cadastro Nacional de Pessoa Jurídica).No caso do CNPJ, o DV corresponde ao resto da divisão por 11 do somatório da multiplicação de cada algarismo da base respectivamente por 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6 e 5, a partir da unidade. O resto 10 é considerado 0. Vejamos a ilustração para melhor entendimento.Posição 1 2 3 4 5 6 7 8 9 10 11 12 13 14CNPJ 4 4 4 5 5 5 6 6 0 0 0 1 8 3Multiplicar por 6 7 8 9 2 3 4 5 6 7 8 9Resultado a somar 24+ 28+ 32+ 45+ 10+ 15+ 24+ 30+ 0+ 0+ 0+ 9 =217Obtendo o resto da divisão por 11 ==> 217 / 11 = 19 resto 8.Com isso, conseguimos o primeiro dígito verificador (8). Para o segundo dígito verificador, o procedimento é bem parecido, só acrescentamos ao somatório a multiplicação pelo primeiro dígito obtido anteriormente. Ficará assim:Posição 1 2 3 4 5 6 7 8 9 10 11 12 13 14CNPJ 4 4 4 5 5 5 6 6 0 0 0 1 8 3Multiplicar por 5 6 7 8 9 2 3 4 5 6 7 8 9Resultado a somar 20+ 24+ 28+ 40+ 45+ 10+ 18+ 24+ 0+ 0+ 0+ 8+ 72 =289Obtendo o resto da divisão por 11 ==> 289 / 11 = 26 resto 3.Agora, conseguimos o segundo dígito verificador (3). Portanto, o DV para este CNPJ é 83.Vamos desenvolver o código. Seguiremos o mesmo conceito do cálculo do CPF. Desmembraremos o CNPJ em algarismos, executaremos as operações matemáticas e, por fim, efetuaremos a comparação dos DVs obtidos com o algorítimo com os DVs fornecidos no CNPJ analizado.Vá ao ambiente de desenvolvimento do VBA (Alt+F11) e digite o código abaixo num Módulo.01 Public Function VerificarCNPJ(sCNPJ As String) As String

02 Dim d1 As Integer

03 Dim d2 As Integer

Page 4: Validar CPF, CNPJ e Título de Eleitor

04 Dim d3 As Integer05 Dim d4 As Integer06 Dim d5 As Integer07 Dim d6 As Integer08 Dim d7 As Integer09 Dim d8 As Integer10 Dim d9 As Integer11 Dim d10 As Integer12 Dim d11 As Integer13 Dim d12 As Integer14 Dim d13 As Integer15 Dim d14 As Integer16 Dim DV1 As Integer

17 Dim DV2 As Integer

18 Dim UltDig As Integer

19  

20 'Completa com zeros à esquerda caso não esteja com os 14 digitos

21 If Len(sCNPJ) < 14 Then

22     sCNPJ = String(14 - Len(sCNPJ), "0") & sCNPJ

23 End If

24  

25 'Pega a posição do último dígito

26 UltDig = Len(sCNPJ)

27  

28 'Sai da função caso a célula esteja vazia

29 If sCNPJ = "00000000000000" Then

30     VerificarCNPJ = ""

31     Exit Function

32 End If

33  

34 'Pega cada dígito do CNPJ informado e35 'coloca nas variáveis específicas

36  

37 d1 = CInt(Mid(sCNPJ, UltDig - 13, 1))38 d2 = CInt(Mid(sCNPJ, UltDig - 12, 1))39 d3 = CInt(Mid(sCNPJ, UltDig - 11, 1))40 d4 = CInt(Mid(sCNPJ, UltDig - 10, 1))41 d5 = CInt(Mid(sCNPJ, UltDig - 9, 1))42 d6 = CInt(Mid(sCNPJ, UltDig - 8, 1))43 d7 = CInt(Mid(sCNPJ, UltDig - 7, 1))44 d8 = CInt(Mid(sCNPJ, UltDig - 6, 1))

45 d9 = CInt(Mid(sCNPJ, UltDig - 5, 1))

46 d10 = CInt(Mid(sCNPJ, UltDig - 4, 1))47 d11 = CInt(Mid(sCNPJ, UltDig - 3, 1))48 d12 = CInt(Mid(sCNPJ, UltDig - 2, 1))49 d13 = CInt(Mid(sCNPJ, UltDig - 1, 1))    '<----- Aqui são os DVs informados

Page 5: Validar CPF, CNPJ e Título de Eleitor

50 d14 = CInt(Mid(sCNPJ, UltDig, 1))    '<----- no CNPJ analizado

51  

52 '----------- Aqui é executado o calculo para obter os digitos verificadores corretos

53 DV1 = (d1 * 6) + (d2 * 7) + (d3 * 8) + (d4 * 9) + (d5 * 2) + (d6 * 3) + (d7 * 4) + (d8 * 5) + (d9 * 6) + (d10 * 7) + (d11 * 8) + (d12 * 9)

54 DV1 = DV1 Mod 11    'Obtem o resto

55 'se o resto for igual a 10 altera pra 0

56 If DV1 = 10 Then

57     DV1 = 0

58 End If

59  

60 DV2 = (d1 * 5) + (d2 * 6) + (d3 * 7) + (d4 * 8) + (d5 * 9) + (d6 * 2) + (d7 * 3) + (d8 * 4) + (d9 * 5) + (d10 * 6) + (d11 * 7) + (d12 * 8) + (DV1 * 9)

61 DV2 = DV2 Mod 11    'Obtem o resto

62 'se o resto for igual a 10 altera pra 0

63 If DV2 = 10 Then

64     DV2 = 0

65 End If

66  

67 '---------- Fazendo a comparação dos dvs informados -------

68 If d13 = DV1 And d14 = DV2 Then

69     VerificarCNPJ = "CNPJ Válido"

70 Else

71     VerificarCNPJ = "CNPJ Inválido"

72 End If

73  

74 End FunctionRetorne à planilha e para chamar a função na célula, digite:=VerificarCNPJ(A1)Supondo que na célula A1 contenha um número de CNPJ.Bem, resta, agora, a função de validação de um Título Eleitoral. Para não estender demais este artigo, postarei numa nova oportunidade a segunda parte deste artigo, abordando como validar um título de eleitor. Até lá.

Termos aprendidos neste artigo:Len Retorna um Long que contém o número de caracteres existentes em uma seqüência de caracteres ou o

número de bytes necessários para armazenar uma variável.

Sintaxe

Len(string | varname)

A sintaxe da função Len tem as seguintes partes:

Parte Descrição

String Qualquer expressão de seqüência válida. Se string contiver Null, será retornado Null.

Varname Qualquer nome de variável válido. Se varname contiver Null, será retornadoNull. Se varname for uma Variant, Len tratará essa variante como uma String e retornará sempre o número de caracteres

Page 6: Validar CPF, CNPJ e Título de Eleitor

nela contidos.String Retorna uma Variant (String) que contém uma seqüência de caracteres repetida com o comprimento

especificado.

Sintaxe

String(number, character)

A sintaxe da função String tem os seguintes argumentos nomeados:

Parte Descrição

number Obrigatória; Long. Comprimento da seqüência de caracteres retornada. Senumber contiver Null, será retornado Null.

character Obrigatória; Variant. Código de caractere especificando o caractere ou expressão de seqüência cujo primeiro caractere é usado para formar a seqüência de caracteres de retorno. Se character contiver Null, será retornadoNull.

CInt Converte uma expressão no tipo de dados Integer.

Sintaxe

CInt(expression)Mid Retorna uma Variant (String) que contém um número especificado de caracteres de uma seqüência de

caracteres.

Sintaxe

Mid(string, start[, length])

A sintaxe da função Mid tem os seguintes argumentos nomeados:

Parte Descrição

string Obrigatória. Expressão de seqüência da qual são retornados os caracteres. Sestring contiver Null, será retornado Null.

start Obrigatória; Long. A posição do caractere em string onde a parte a ser considerada começa. Se start for maior que o número de caracteres existentes em string, a função Mid retornará uma seqüência de caracteres de comprimento zero ("").

length Opcional; Variant (Long). Número de caracteres a ser retornado. Se omitido ou se existirem menos caracteres do que os de length no texto (inclusive o caractere em start), serão retornados todos os caracteres a partir da posição start até o final da seqüência de caracteres.

Mod Operadorusado para dividir dois números e retornar somente o resto.

Sintaxe

result = number1 Mod number2

A sintaxe do operador Mod possui as seguintes partes:

Parte Descrição

result Obrigatória; qualquer variável numérica.

number1 Obrigatória; qualquer expressão numérica.

number2 Obrigatória; qualquer expressão numérica.

Comentários

O operador de módulo, ou resto, divide number1 por number2 (arredondando números de ponto flutuante

para inteiros) e retorna somente o resto como result. Por exemplo, na expressão a seguir, A (result) é

igual a 5.A = 19 Mod 6.7

Page 7: Validar CPF, CNPJ e Título de Eleitor

Validar CPF, CNPJ e Título de Eleitor (Parte II)Escrito por: Reinaldo Coral

Continuando o artigo anterior sobre Validação de CPF, CNPJ e Título de Eleitor, abordarei hoje como verificar a validade de um número de um Título de eleitor. Para quem não leu a primeira parte do artigo, leia aqui.O objetivo da função que desenvolveremos é de verificar se um número de título eleitoral digitado é válido. Elaborei esta fórmula para o uso na planilha do excel de forma que execute a validação desses números. A forma de calcular já é de saber público e facilmente encontrada na internet. O que fiz foi desenvolver uma função de cálculo e análise desse algorítimo através do VBA do Excel.

Então… Mãos à obra!!!1 – Validação de número de Título Eleitoral.Primeiramente vamos entender como se obtém o algorítimo do DV(Dígito Verificador) de um Título Eleitoral.O algorítimo para calcular um Título Eleitoral válido é feito de maneira similar ao do CPF e CNPJ. Primeiro conseguimos o valor para o primeiro digito verificador. Ele é obtido através do resto da divisão por 11 da soma da multiplicação de cada um dos 8 primeiros algarismos, respectivamente, por 2, 3, 4, 5, 6, 7, 8 e 9. Vejamos a ilustração.Posição 1 2 3 4 5 6 7 8 9 10 11 12Título Eleitoral 1 0 6 6 4 4 4 4 0 3 0 2Multiplicar por 2 3 4 5 6 7 8 9Resultado a somar 2 + 0 + 24 + 30 + 24 + 28 + 32 + 36 + =176Obtendo o resto da divisão por 11 ==> 176 / 11 = 16 resto 0.Com isso, conseguimos o primeiro dígito verificador (0). Paraa obtenção do segundo dígito verificador, tomaremos os dois dígitos que correspondem a UF do título. Eles ficam nas posições 9 e 10. Incluiremos o primeiro DV obtido e multiplicaremos por 7, 8 e9, respectivamente. Somaremos o produto e dividiremos por 11, aproveitando apenas o resto da divisão. Veja a tabela.Posição 1 2 3 4 5 6 7 8 9 10 11 12Título Eleitoral 1 0 6 6 4 4 4 4 0 3 0 2Multiplicar por 7 8 9Resultado a somar 0 + 24 0 =24Obtendo o resto da divisão por 11 ==> 24 / 11 = 2 resto 2.Agora, conseguimos o segundo dígito verificador (2). Portanto, o DV para este Título Eleitoral é 02.Quando falei em algarismos que correspondem a UF, me referia a tabela de UFs que são válidas para as posições 9 e 10 do número do título de eleitor. Veja a tabela.UF Código UF CódigoSP 01 PI 15MG 02 RN 16RJ 03 AL 17RS 04 MT 18BA 05 MS 19PR 06 DF 20CE 07 SE 21PE 08 AM 22SC 09 RS 23GO 10 AC 24MA 11 AP 25PB 12 RR 26

Page 8: Validar CPF, CNPJ e Título de Eleitor

PA 13 TO 27ES 14 ZZ-Exterior 28Vamos transferir toda essa matemática agora para a função VBA. No código, desmembraremos o número do título em algarismos, executaremos as operações matemáticas e, por fim, efetuaremos a comparação dos DVs obtidos com o algorítimo com os DVs fornecidos no Título Eleitoral analizado.Vá ao ambiente de desenvolvimento do VBA (Alt+F11), insira um novo módulo e digite o código abaixo.01 Public Function VerificarTituloEleitor(sTitulo As String) As String

02 Dim d1 As Integer

03 Dim d2 As Integer04 Dim d3 As Integer05 Dim d4 As Integer06 Dim d5 As Integer07 Dim d6 As Integer08 Dim d7 As Integer09 Dim d8 As Integer10 Dim d9 As Integer11 Dim d10 As Integer12 Dim d11 As Integer13 Dim d12 As Integer14 Dim DV1 As Integer

15 Dim DV2 As Integer

16 Dim UltDig As Integer

17  

18 'Completa com zeros à esquerda caso não esteja com os 11 digitos

19 If Len(sTitulo) < 12 Then

20     sTitulo = String(12 - Len(sTitulo), "0") & sTitulo

21 End If

22  

23 'Pega a posição do último dígito

24 UltDig = Len(sTitulo)

25  

26 'Sai da função caso a célula esteja vazia

27 If sTitulo = "000000000000" Then28     VerificarTituloEleitor = ""

29     Exit Function

30 End If

31  

32 'Pega cada dígito do CPF informado e33 'coloca nas variáveis específicas

34  

35 d1 = CInt(Mid(sTitulo, UltDig - 11, 1))36 d2 = CInt(Mid(sTitulo, UltDig - 10, 1))37 d3 = CInt(Mid(sTitulo, UltDig - 9, 1))38 d4 = CInt(Mid(sTitulo, UltDig - 8, 1))39 d5 = CInt(Mid(sTitulo, UltDig - 7, 1))40 d6 = CInt(Mid(sTitulo, UltDig - 6, 1))

Page 9: Validar CPF, CNPJ e Título de Eleitor

41 d7 = CInt(Mid(sTitulo, UltDig - 5, 1))42 d8 = CInt(Mid(sTitulo, UltDig - 4, 1))

43 d9 = CInt(Mid(sTitulo, UltDig - 3, 1))

44 d10 = CInt(Mid(sTitulo, UltDig - 2, 1))45 d11 = CInt(Mid(sTitulo, UltDig - 1, 1))  '<----- Aqui são os DVs informados46 d12 = CInt(Mid(sTitulo, UltDig, 1))    '<----- no Títlo Eleitoral analizado

47  

48 '----------- Aqui é executado o calculo para obter os digitos verificadores corretos

49 DV1 = (d1 * 2) + (d2 * 3) + (d3 * 4) + (d4 * 5) + (d5 * 6) + (d6 * 7) + (d7 * 8) + (d8 * 9)

50 DV1 = DV1 Mod 11    'Obtem o resto

51 'se o resto for igual a 10 altera pra 0

52 If DV1 = 10 Then

53     DV1 = 0

54 End If

55  

56 DV2 = (d9 * 7) + (d10 * 8) + (DV1 * 9)

57 DV2 = DV2 Mod 11    'Obtem o resto

58 'se o resto for igual a 10 altera pra 0

59 If DV2 = 10 Then

60     DV2 = 0

61 End If

62  

63 '---------- Fazendo a comparação dos dvs informados -------

64 If d11 = DV1 And d12 = DV2 Then

65     If CInt(d9 & d10) > 0 And CInt(d9 & d10) < 29 Then

66         VerificarTituloEleitor = "Título Eleitoral Válido"

67     Else

68         VerificarTituloEleitor = "Título Eleitoral Inválido"

69     End If

70 Else

71     VerificarTituloEleitor = "Título Eleitoral Inválido"

72 End If

73  

74 End FunctionRetorne à planilha e para chamar a função na célula, digite:=VerificarTituloEleitor(A1)Supondo que na célula A1 contenha um número de Título Eleitoral.Bom! Finalizamos mais um artigo. Espero ajudar bastante seus trabalhos. Gostaria de lembrar a você que eu desenvolvo funções personalizadas por encomenda. Caso necessite de um projeto bem elaborado e funcional, solicitem um orçamento   . Um abraço.Faça o Download do Arquivo Fonte no final deste artigo.Termos aprendidos neste artigo:Len Retorna um Long que contém o número de caracteres existentes em uma seqüência de caracteres ou o

número de bytes necessários para armazenar uma variável.

Sintaxe

Page 10: Validar CPF, CNPJ e Título de Eleitor

Len(string | varname)

A sintaxe da função Len tem as seguintes partes:

Parte Descrição

String Qualquer expressão de seqüência válida. Se string contiver Null, será retornado Null.

Varname Qualquer nome de variável válido. Se varname contiver Null, será retornadoNull. Se varname for uma Variant, Len tratará essa variante como uma String e retornará sempre o número de caracteres nela contidos.

String Retorna uma Variant (String) que contém uma seqüência de caracteres repetida com o comprimento especificado.

Sintaxe

String(number, character)

A sintaxe da função String tem os seguintes argumentos nomeados:

Parte Descrição

number Obrigatória; Long. Comprimento da seqüência de caracteres retornada. Senumber contiver Null, será retornado Null.

character Obrigatória; Variant. Código de caractere especificando o caractere ou expressão de seqüência cujo primeiro caractere é usado para formar a seqüência de caracteres de retorno. Se character contiver Null, será retornadoNull.

CInt Converte uma expressão no tipo de dados Integer.

Sintaxe

CInt(expression)Mid Retorna uma Variant (String) que contém um número especificado de caracteres de uma seqüência de

caracteres.

Sintaxe

Mid(string, start[, length])

A sintaxe da função Mid tem os seguintes argumentos nomeados:

Parte Descrição

string Obrigatória. Expressão de seqüência da qual são retornados os caracteres. Sestring contiver Null, será retornado Null.

start Obrigatória; Long. A posição do caractere em string onde a parte a ser considerada começa. Se start for maior que o número de caracteres existentes em string, a função Mid retornará uma seqüência de caracteres de comprimento zero ("").

length Opcional; Variant (Long). Número de caracteres a ser retornado. Se omitido ou se existirem menos caracteres do que os de length no texto (inclusive o caractere em start), serão retornados todos os caracteres a partir da posição start até o final da seqüência de caracteres.

Mod Operadorusado para dividir dois números e retornar somente o resto.

Sintaxe

result = number1 Mod number2

A sintaxe do operador Mod possui as seguintes partes:

Parte Descrição

result Obrigatória; qualquer variável numérica.

number1 Obrigatória; qualquer expressão numérica.

number2 Obrigatória; qualquer expressão numérica.

Comentários

O operador de módulo, ou resto, divide number1 por number2 (arredondando números de ponto flutuante

Page 11: Validar CPF, CNPJ e Título de Eleitor

para inteiros) e retorna somente o resto como result. Por exemplo, na expressão a seguir, A (result) é

igual a 5.A = 19 Mod 6.7