[A BÍBLIA DO VBA NO ACCESS]: MACROS E PROGRAMAÇÃO VBA NO ACCESS - CURSO COMPLETO

Páginas: 1164 | Autor: Júlio Battisti | 50% de Desconto e 21 Super Bônus

Você está em: PrincipalArtigosExcel Avançado › Módulo 6 : 09
Quer receber novidades e e-books gratuitos?
›››
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Excel Avançado - 120 Lições
Autor: Júlio Battisti
Módulo 6 - Lição 09 - Calculando o DV do CPF - Criando a Função

Nessa lição vamos criar uma função chamada ValidaCPF. Essa função recebe, como parâmetro, um valor de CPF no formato 111.111.111-11 ou o endereço de uma célula que contém um CPF nesse formato. A função retorna a palavra Válido se o CPF for Válido e Inválido se o CPF for inválido.

Para criar uma função que possa ser utilizada na planilha, devemos criar a função dentro de um Módulo do VBA. Criaremos a função ValidaCPF, dentro do Módulo1 da planilha Números de CPF.xls, a qual está na pasta C:\ExcelAvancado.

Exercício: Criar uma função chamada ValidaCPF, no Módulo 1 da planilha Números de CPF. Em seguida utilizar essa função para verificar se os CPFs da planilha são ou não válidos.

1. Abra o Excel.

2. Abra a planilha C:\ExcelAvancado\Números de CPF.xls.

3. Selecione o comando Ferramentas -> Macro -> Editor Visual Basic...

4. Vamos criar a função ValidaCPF de tal maneira que ele possa ser utilizada em qualquer local da planilha. Para isso vamos cria-la como uma função Pública, dentro de um módulo do VBA.

5. Para inserir um módulo, selecione o comando Inserir -> Módulo . Será criado o Módulo 1. Agora vamos inserir uma função, dentro desse módulo.

6. Selecione o comando Inserir -> Procedimento.

7. Será aberta a janela Adicionar procedimento. Preencha os dados conforme indicado na Figura a seguir:

Excel Avançado em 120 Lições - Júlio Battisti

8. Clique em OK.

9. Será inserido o código básico para a criação de uma função pública (que pode ser utilizada em qualquer parte da planilha), conforme indicado a seguir:

Public Function ValidaCPF()

End Function

10. A função ValidaCPF deverá receber um parâmetro: o número do CPF no formato 111.111.111-11. A definição dos parâmetros que serão recebidos pela função é feito dentro dos parênteses. Fora dos parênteses, definimos o tipo da função, isto é, que tipo de valor a função irá retornar: inteiro, real, texto, data, etc. No nosso exemplo a função retornará um valor do tipo Texto: Válido ou Inválido. Altere o código para definir o parâmetro a ser recebido e o tipo da função, conforme indicado a seguir:

Public Function ValidaCPF(CPF As String) As String

End Function

Observe que o "As String" dentro do parênteses, define que o parâmetro CPF é do tipo texto. Já o "As String" fora do parênteses, define o tipo da função, isto é, a função irá retornar um valor do tipo Texto.

11. Agora vamos digitar o código de validação do CPF. Esse código é digitado entre os comandos " Public Function ValidaCPF(CPF As String) As String" e "End Function".

Nota: Cada comando do VBA deve ser digitado em uma única linha. Se você precisa "quebrar" uma linha, deve ser colocado um caractere de sublinhado no final da linha: _

12. Digite o código da listagem a seguir:

Public Function ValidaCPF(CPF As String) As String

'Função para cálculo do dígito verificador do CPF

'Iniciamos a função com a declaração das variáveis que serão utilizadas.

' As variáveis d1 até d11, conterão os dígitos individuais
' do CPF. Por exemplo, ao digitar o CPF: 123.456.789-11, essas
' variáveis conterão os seguintes valores:
' d1=1 d2=2 d3=3 d4=4 d5=5 d6=5 d7=7 d8=8 d9=9 d10=1 d11=1

Dim d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11 As Integer

' Demais variáveis que serão utilizadas para o cálculo do DV.

Dim Soma1, Soma2, Resto As Integer
Dim Resto1, Resto2 As Integer
Dim DV1, DV2 As Integer

' Em primeiro lugar testo se a célula com o CPF contém um valor
' válido, isto é, um valor Não Nulo.

If Not (IsNull(CPF)) Then

'*************************************************************************
' Os comandos a seguir desmembram o CPF um a um , atribuindo os valores *
' de d1 ... d11 , usando as funções Mid$ e Val *
' Como o CPF está no formato de Texto, vamos extrair os dígitos do CPF *
' um a um, converter o respectivo valor de texto para número e atribuir *
' esse valor para as variáveis d1 até d11. *
'*************************************************************************

d1 = Val(Mid$(CPF, 1, 1))
d2 = Val(Mid$(CPF, 2, 1))
d3 = Val(Mid$(CPF, 3, 1))
d4 = Val(Mid$(CPF, 5, 1))
d5 = Val(Mid$(CPF, 6, 1))
d6 = Val(Mid$(CPF, 7, 1))
d7 = Val(Mid$(CPF, 9, 1))
d8 = Val(Mid$(CPF, 10, 1))
d9 = Val(Mid$(CPF, 11, 1))
d10 = Val(Mid$(CPF, 13, 1))
d11 = Val(Mid$(CPF, 14, 1))

'*************************************************************************
' A partir de agora passo a utilizar os valores anteriores para cálculo *
' do dígito verificador do CPF *
'*************************************************************************

' Cálculo do primeiro DV

Soma1 =((d1*10)+(d2*9)+(d3*8)+(d4*7)+(d5*6)+(d6*5)+(d7*4)+(d8*3)+(d9*2))
Resto1 = (Soma1 Mod 11)

If (Resto1 <= 1) Then

DV1 = 0

Else

DV1 = 11 - Resto1

End If

' Agora inicio o cálculo do segundo DV, já incorporando
' o segundo DV como parte do CPF, para o cálculo.

Soma2=(d1*11)+(d2*10)+(d3*9)+(d4*8)+(d5*7)+(d6*6)+(d7*5)+(d8*4)+(d9*3)+(DV1* 2)
Resto2 = (Soma2 Mod 11)

If (Resto2 <= 1) Then

DV2 = 0

Else

DV2 = 11 - Resto2

End If

' Agora faço o teste para saber se os DVs calculados (DV1 e DV2)
' conferem com os DVs do CPF - d10 e d11

If ((DV1 <> d10) Or (DV2 <> d11)) Then

' Atribuo a palavra "Inválido" para uma variável com o mesmo
' nome da função - ValidaCPF.
' Essa é a maneira de fazer com que a função retorne um valor,
' ou seja, atribuindo o valor a ser retornado, à uma variável
' com o mesmo nome da função.
ValidaCPF = "Inválido"

Else

' Atribuo a palavra "Válido" para uma variável com o mesmo
' nome da função - ValidaCPF.
' Essa é a maneira de fazer com que a função retorne um valor,
' ou seja, atribuindo o valor a ser retornado, à uma variável
' com o mesmo nome da função.
ValidaCPF = "Válido"

End If

End If

End Function

 

13. Clique no botão ( Excel Avançado em 120 Lições - Júlio Battisti ) para salvar a função ValidaCPF.

14. Feche a janela do Editor do Visual Basic.

15. Você estará de volta à planilha Números de CPF. a Próxima lição aprenderemos a utilizar a função ValidaCPF para verificar se os CPFs da planilha são válidos ou não.

16. Salve e feche a planilha.

« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »

Best Sellers de Excel do Julio Battisti

Todos com Vídeo Aulas, E-books ou Exemplos de Brinde!

Excel 2010 Básico - Passo a Passo

 Aprenda com Júlio Battisti: Excel 2010 Avançado - Através de Exemplos Práticos

 

Autor: Júlio Battisti | Páginas: 540 | Editora: Instituto Alpha

 

[Livro]: Aprenda com Júlio Battisti: Access 2010 Básico em 140 Lições - Através de Exemplos Práticos

Excel 2010 Avançado - Passo a Passo

 Aprenda com Júlio Battisti: Excel 2010 Avançado - Através de Exemplos Práticos

 

Autor: Júlio Battisti | Páginas: 952 | Editora: Instituto Alpha

 

[Livro]: Aprenda com Júlio Battisti: Access 2010 Básico em 140 Lições - Através de Exemplos Práticos

Macros e VBA no Excel 2010 - Passo a Passo

Livro: Macros e VBA no Excel 2010 - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1124 | Editora: Instituto Alpha

 

Livro: Macros e VBA no Excel 2010 - Passo a Passo

A Bíblia do Excel 2010 - Curso Completo

Livro: Macros e VBA no Excel 2010 - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1338 | Editora: Instituto Alpha

 

Livro: Macros e VBA no Excel 2010 - Passo a Passo

Todos os livros com dezenas de horas de vídeo aulas de bônus, preço especial (alguns com 50% de desconto). Aproveite. São poucas unidades de cada livro e por tempo limitado.

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Novidades e E-books grátis

Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

  • Júlio Battisti Livros e Cursos Ltda
  • CNPJ: 08.916.484/0001-25
  • Rua Vereador Ivo Cláudio Weigel, 537 Universitário
  • Santa Cruz do Sul/RS
  • CEP 96816-208
  • Todos os direitos reservados, Júlio Battisti 2001-2017 ®

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

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