VBA – Módulos, Procedimentos e Funções

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Como se familiarizar com seu banco de dados usando o SPSS
INFORMAÇÕES COMPLEMENTARES
WINDOWS Sistemas Operacionais PLATAFORMA TECNOLÓGICOS
A busca das mulheres para alcançar seu espaço dentro das organizações
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Excel Profa. Cristina M. Nunes.
Função IsDate 3 A função IsDate recebe uma variável ou expressão como argumento e determina se a variável ou expressão é uma data válida ou pode ser convertida.
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Curso de ADMINISTRAÇÃO
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Estatística Básica Utilizando o Excel
Prof. Neide Pizzolato Angelo
Como se familiarizar com seu banco de dados Como se familiarizar com seu banco de dados usando o SPSS Profa. Suzi Camey Depto de Estatística - UFRGS.
FUNÇÃO MODULAR.
Aula 4 Nomes, Vinculações, Tipos e Escopos
Provas de Concursos Anteriores
Compras - Controle de estoque por lote
Renda até 2 SM.
Módulo Financeiro Centro de Custo.
Cadastro de produtos por referência
Liane Tarouco CINTED/UFRGS
Cadastrar serviço para um produto
Impressão de etiquetas
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
Como controlar o caixa Supermercados.
PESQUISA SOBRE PRAZO MÉDIO DA ASSISTÊNCIA NA SAÚDE SUPLEMENTAR
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
Conteúdos do tutorial O que é um Slide Mestre?
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
Trabalho sobre Cor Thiago Marques Toledo.
Plataforma Brasil – Submissão de pesquisa
IGC do Brasil BT-1306: Como gerar seus relatórios especiais no ELF.net.
Inserir crédito para cliente
Financeiro – Boleto: Remessa e Retorno
Entrada de Produtos Posto de Combustível.
Projeto Medindo minha escola.
Financeiro – Despesas Fixas e Variáveis
Financeiro – Despesas Fixas e Variáveis
Fundamentos de Programação
07/04/2017 Linux Ubuntu 2.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Pontifícia Universidade Católica de Goiás Departamento de Engenharia Curso de Graduação em Engenharia de Produção ENG 1004 – Linguagem de Programação para.
FTIN Formação Técnica em Informática Módulo de Automação de Escritório AULA 05 Prof. Fábio Diniz.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
ÁREA DE TRABALHO DO WINDOWS
FORMATANDO O TRABALHO NO WORD 2007
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
Fiscal - Regra de imposto IdentificaçãoFIS_003 Data Revisão18/10/2013.
Cadastro de Contas a Pagar
Planilha Eletrônica - Excel
Financeiro – Contas a Receber
Compras – Planejamento de Estoque
Contagem Sequencial do Estoque
Contagem Sequencial do Estoque
VBA - Introdução Pontifícia Universidade Católica de Goiás
Introdução à Programação
Transcrição da apresentação:

VBA – Módulos, Procedimentos e Funções 4 Módulos são uma coleção de declarações e procedimentos do VBA, que armazenados em conjuntos formam uma unidade; Procedimentos são conjuntos de instruções que são executadas e produzem uma ação. São procedimentos: Sub Function Property UTFPR – Damat Apostila Pág. 82

VBA – Módulos, Procedimentos e Funções Function é um conjunto de instruções e pode retornar um valor no final de sua execução. Pode utilizar argumentos, como constante, variáveis ou expressões fornecidas através de uma chamada. Sub ou Sub-rotina é um conjunto de instruções que executa um conjunto de funções ou cálculos, ou ainda, uma combinação dos dois. No entanto, não retorna valor. Se esta executar um cálculo, não haverá uma maneira direta de se encontrar o resultado. UTFPR – Damat Apostila Pág. 82

Sub-Rotina A Sub-rotinas podem ser executadas diretamente ou através da chamada do nome da sub-rotina; Quando uma sub-rotina é chamada, a execução desloca-se para dentro da sub-rotina e depois de executados todos os comandos, a execução do código continua com o comando seguinte ao que chamou a sub-rotina; UTFPR – Damat Apostila Pág. 83

Sub-rotina Uma sub-rotina poderá ter valores que são fornecidos em tempo de execução e que são utilizados internamente para a realização de cálculos. Estes valores são chamados de argumentos; A sintaxe para a criação de uma Sub-rotina é a seguinte: UTFPR – Damat Apostila Pág. 83

Sub-rotina - Exemplo Declaramos uma rotina chamada Calcula_imposto a qual espera receber 3 parâmetros: salário, desconto e extras que deverão ser fornecidos nesta ordem; UTFPR – Damat Apostila Pág. 83

Sub-rotinas sem Parâmetros Também podemos criar sub-rotinas sem parâmetros. Neste caso, posso simplesmente não utilizar os parênteses após o nome da Sub-rotina ou utilizar um par de parênteses, sem nada dentro, conforme mostram as Figuras. UTFPR – Damat Apostila Pág. 84

Sub-rotina - Exemplo Vamos criar uma Sub-rotina que exibe uma Caixa de mensagem com a data e a hora do sistema no formato indicado na Figura a seguir: Funções UTFPR – Damat Apostila Pág. 84

Sub-rotina - Exemplo Na janela do editor do VBA, dê um clique no módulo onde você deseja inserir a sub-rotina; Após o último procedimento encontrado no módulo, digite: Observe que automaticamente aparece o fechamento End Sub para a Sub-rotina; UTFPR – Damat Apostila Pág. 85

Digite as linhas de código a seguir: Sub-rotina - Exemplo Digite as linhas de código a seguir: UTFPR – Damat Apostila Pág. 85

u Sub-rotina - Exemplo UTFPR – Damat Apostila Pág. 85

Chamada de uma Sub-rotina Temos duas opções para chamarmos uma sub-rotina de outro código: Simplesmente digitando o nome da Sub-rotina; Digitando a palavra Call mais o nome da Sub-rotina; UTFPR – Damat Apostila Pág. 84

Chamada de uma Sub-rotina - Exemplo Cada vez que for necessário exibir a data e a hora nos formatos do exemplo, basta chamar a Sub-rotina exibe_data_hora, utilizando um dos seguintes comandos: Call exibe_data_hora ou exibe_data_hora UTFPR – Damat Apostila Pág. 85

Chamada de Sub-rotina - Exemplo Funções Vamos criar uma Sub-rotina que chama a Sub-rotina exibe_data_hora, como mostra a figura. UTFPR – Damat Apostila Pág. 84

Criando e utilizando Funções Função: grupo de comandos que podem ser executados simplesmente através da chamada do nome da Função; Uma função pode ter um ou mais argumentos; Quando uma função é chamada, a execução desloca-se para dentro da Função e executa seu código; Após o término do cálculo da função, a execução do código continua com o comando seguinte ao que chamou a função. A diferença da Função para a Sub-rotina, é que a função sempre retorna um ou mais valores para o comando que a chamou. UTFPR – Damat Apostila Pág. 85

Criando e utilizando Funções Sintaxe para declaração de uma Função: UTFPR – Damat Apostila Pág. 86

Função sem Parâmetros Uma função pode ser declarada sem parâmetros. As Figuras mostram as sintaxes possíveis para este caso. Posteriormente veremos exemplo de função. UTFPR – Damat Apostila Pág. 87

Escopo das variáveis no VBA Escopo de uma variável: define em que partes do código a variável pode ser utilizada. Escopo de sub-procedimento/função/macro: se uma variável que foi declarada dentro de um sub-procedimento ou função, somente poderá ser utilizada dentro do sub-procedimento ou função. Uma variável declarada ao nível de procedimento existe enquanto o procedimento estiver sendo executado; Escopo de Módulo: você pode declarar uma variável na seção de declarações do módulo, isto é, fora de qualquer Procedimento. Com isso a variável pode ser utilizada dentro de todo o bloco de código do Módulo, inclusive dentro dos Procedimentos; UTFPR – Damat Apostila Pág. 89

Escopo das variáveis no VBA Funções Com a janela do VBA aberta, clique logo abaixo da caixa de listagem onde se encontra Geral (Figura); Declare as variáveis x, y e aux 1 (Figura); UTFPR – Damat Apostila Pág. 89

Exemplo de Escopo de variáveis no VBA Crie uma sub-rotina como mostrado a seguir: Sub proc1() Dim a, b x = 10 y = 20 a = 5 b = 7 MsgBox "x= " & x & " y= " & y & " a= " & a & " b= " & b End Sub UTFPR – Damat Apostila Pág. 90

Exemplo de escopo de variáveis no VBA Crie uma nova sub-rotina que chamará a sub-rotina proc1 como mostrado a seguir: Sub Callproc1() Call proc1 aux1 = a + b aux2 = x + y MsgBox "aux1 = " & aux1 MsgBox "aux2 = " & aux2 End Sub UTFPR – Damat Apostila Pág. 90

Exemplo de escopo de variáveis no VBA Execute a sub-rotina Callproc1(). Pode-se observar que o resultado para: aux1= a + b é zero. E o resultado para: aux2 = x + y é 30. As variáveis a e b não tem escopo de módulo. Já as variáveis x e y sim. UTFPR – Damat Apostila Pág. 90

Função Personalizada – Exemplo 1 Criar e utilizar uma função personalizada para o cálculo do imposto de renda pessoa física. A função será chamada Calcula_IRPF e receberá como parâmetro o valor da Base de Cálculo para o imposto. A função retornará o valor do imposto a ser pago. Abra o Excel; Abra a pasta Módulo 1 – Exercício 05.xls; Agora vamos iniciar a criação da função Calcula_IRPF; UTFPR – Damat Apostila Pág. 92

Função Personalizada – Exemplo 1 Pressione Alt + F11 para exibir o Editor do VBA; Agora vamos iniciar a criação da função Calcula_IRPF; Para criar uma função que possa ser utilizada em qualquer planilha da sua pasta de trabalho, você deve criar a função em um Módulo de Código separado. Não pode ser em um dos módulos de código de uma das planilhas ou da pasta de trabalho. Clique com o botão direito do mouse em VBAProject (Modulo 1 –Exercício 05.xls) no painel da esquerda. No menu que é exibido, clique em Inserir  Módulo. Será criado um módulo chamado Módulo 1, conforme Figura. UTFPR – Damat Apostila Pág. 92

Função Personalizada – Exemplo 1 Dê um clique duplo em Módulo 1, para selecioná-lo. Agora vamos criar a função Calcula_IRPF dentro do Módulo 1. Para criar uma nova função, selecione no menu Inserir  Procedimento. Será exibida a janela Adicionar Procedimento. Digite o nome da função – Calcula_IRPF no campo Nome e marque a opção Função no grupo Tipo. Sua janela deverá estar como na Figura. Clique em OK; UTFPR – Damat Apostila Pág. 93

Função Personalizada – Exemplo 1 Será inserido o que chamamos de “esqueleto da função”, ou seja, a declaração da função e o comando End Sub, conforme mostra a Figura; Agora vamos alterar este código. O primeiro passo é definir os parâmetros que a função receberá e o tipo que será retornado pela função. UTFPR – Damat Apostila Pág. 93

Função Personalizada – Exemplo 1 Vamos definir um parâmetro chamado BaseDeCálculo, do tipo Currency. O tipo de retorno da função também será definido como sendo do tipo Currency. Altere o código para que fique conforme na Figura a seguir: Public Function Calcula_IRPF(BasedeCálculo As Currency) As Currency End Function Até aqui fizemos a declaração da função, dos seus argumentos e do tipo de retorno da função. A próxima etapa é o cálculo do valor do imposto, com base no parâmetro BaseDeCálculo. UTFPR – Damat Apostila Pág. 93

Função Personalizada – Exemplo 1 Tabela de cálculo do imposto de renda A seguir, temos o código da função Calcula_IRPF. UTFPR – Damat Apostila Pág. 94

Função Personalizada – Exemplo 1 Dentro da função, digite as linhas de comandos a seguir If BaseDeCálculo <= 15764.29 Then Calcula_IRPF = 0 ElseIf BaseDeCálculo > 15764,29 and BaseDeCálculo <= 31501.44 Then Calcula_IRPF = (BaseDeCálculo * 0.15) – 2364.64 Else Calcula_IRPF = (BaseDeCálculo * 0.275) – 6302.32 End If UTFPR – Damat Apostila Pág. 94

Função Personalizada – Exemplo 1 No canto esquerdo da barra de ferramentas na janela do editor do VBA, pressione o botão para retornar ao Excel; A célula C2, digite a seguinte fórmula: =Calcula_IRPF(B2) Pressione Enter e observe que o Excel usa a função personalizada Calcula_IRPF para determinar o valor do imposto, conforme mostra Figura. UTFPR – Damat Apostila Pág. 95

Função Personalizada – Exemplo 1 O tracinho significa zero. Esta é a formatação padrão aplicada ao formato Contábil, ou seja, ao invés de 0, exibe o tracinho. Utilize o mouse para estender a fórmula para as demais células da coluna C. O imposto será calculado conforme mostra a Figura ; UTFPR – Damat Apostila Pág. 95

Função Personalizada – Exemplo 2 Criar e utilizar uma função personalizada para a validação do CPF. Chame esta função de ValidaCPF. 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. 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 UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 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: UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 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 UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 O DV1 calculado passa a fazer parte do CPF, conforme indicado pela tabela a seguir: Agora repetimos o processo anterior, porém já considerando o DV1 como parte integrante do CPF, conforme indicado pela tabela a seguir: UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 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 UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 Com isso o CPF, já com os dois DVs fica conforme indicado na tabela a seguir: 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 e no CNPJ após chegar a multiplicação por 10, inicia novamente a multiplicação por 2, depois por 3 e assim por diante. UTFPR – Damat Lição 22 -

Função Personalizada – Exemplo 2 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; 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, conforme descrito no exemplo de criação da função Calcula_IRPF, mostrado anteriormente. UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 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:\Programação VBA no Excel\Números de CPF.xls; 3. Selecione o comando Ferramentas -> Macro -> Editor Visual Basic... ou pressione Alt+F11. UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 4. Vamos criar a função ValidaCPF de tal maneira que possa ser utilizada em qualquer local da planilha. Para isso vamos criá-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. Clique em Módulo 1, no painel da esquerda. 6. Selecione o comando Inserir -> Procedimento. 7. Será aberta a janela Adicionar procedimento. Preencha os dados conforme indicado na Figura a seguir: UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 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 UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 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 UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 Observe que “As String” dentro do parênteses, define que o parâmetro CPF é do tipo texto. Já “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: _ UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 12. Digite o código da listagem a seguir. As linhas que iniciam com um apóstrofe – ‘ – são comentários e servem para descrever cada parte da função, ou seja, o que faz cada trecho do código da função. Observe que a função implementa exatamente (como não poderia deixar de ser), os passos do algorítmo de validação, descrito anteriormente. UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 UTFPR – Damat Apostila Pág. 99

Função Personalizada – Exemplo 2 'Em primeiro lugar vamos testar se o CPF não está 'vazio e se tem comprimento maior ou igual à 11 'Caso as condições retornem verdadeiras, carregamos os dígitos do CPF na variável d() UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 If Not (IsNull(CPF)) And Len(CPF) >= 11 Then j = 1 For i = 1 To Len(CPF) If Mid(CPF, i, 1) <> "." And Mid(CPF, i, 1) <> "-" Then d(j) = Mid(CPF, i, 1) j = j + 1 End If Next j = j - 1 UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 'Inserimos agora uma condição para verificar 'se o número de dígitos do CPF é 11 If j = 11 Then Comandos para verificação do CPF Else validaCPF = “Inválido” End if UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 Soma1 = 0 'Cálculo do primeiro DV For i = 1 to 9 Soma1 = Soma1 + d(i) * (11 - i) Next Resto1 = Soma1 Mod (11) UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 If Resto1 = 0 Or Resto1 = 1 Then DV1 = 0 Else DV1 = 11 - Resto1 End If UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 For i = 1 to 9 Soma2 = Soma2 + d(i) * (12 – i) Next Soma2 = Soma2 + DV1 * 2 Resto2 = Soma2 Mod 11 UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 If Resto2 = 0 Or Resto2 = 1 Then DV2 = 0 Else DV2 = 11 - Resto2 End If UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 UTFPR – Damat Apostila Pág. 100

Função Personalizada – Exemplo 2 13. Clique no botão ( ) 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. UTFPR – Damat Lição 23 -

Função Personalizada – Exemplo 2 UTFPR – Damat Apostila Pág. 102

Função Personalizada – Exemplo 2 UTFPR – Damat Apostila Pág. 102

Função Personalizada – Exemplo 3 Verificar se dará tempo Função Personalizada – Exemplo 3 Vamos criar duas novas funções personalizadas: a primeira irá contar o número de valores de uma faixa de células que estão dentro de um intervalo; a segunda irá fazer a soma dos valores de uma faixa de células que estão dentro de um intervalo; UTFPR – Damat Apostila Pág. 103

Função Personalizada – Exemplo 3 A sintaxe dessas duas funções vai ficar da seguinte forma; UTFPR – Damat Apostila Pág. 103

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 104

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 104

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 105

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 105

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 106

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 107

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 107

Função Personalizada – Exemplo 3 UTFPR – Damat Apostila Pág. 108