Baixe o app para aproveitar ainda mais
Prévia do material em texto
capa_contra.p65 16/6/2004, 17:391 indice.p65 17/6/2004, 10:441 © 2004 b© 2004 b© 2004 b© 2004 b© 2004 by Digy Digy Digy Digy Digerererererati Booksati Booksati Booksati Booksati Books Todos os direitos reservados e protegidos pela Lei 5.988 de 14/12/1973. Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos, mecânicos, fotográficos, grava- ção ou quaisquer outros. DirDirDirDirDiretor Editoretor Editoretor Editoretor Editoretor Editorialialialialial Luis Matos EditorEditorEditorEditorEditora-assistentea-assistentea-assistentea-assistentea-assistente Monalisa Neves RedatorRedatorRedatorRedatorRedatoraaaaa Sandra Rita Pinto PrPrPrPrPreparepareparepareparação e Reação e Reação e Reação e Reação e Revisãovisãovisãovisãovisão Beatriz Utsumi Capa e PrCapa e PrCapa e PrCapa e PrCapa e Projeto Gráfojeto Gráfojeto Gráfojeto Gráfojeto Gráficoicoicoicoico Daniele Oliveira ArArArArArtetetetete Patricia Fernandez Ferrari SuporSuporSuporSuporSuporte te te te te Técnico e Técnico e Técnico e Técnico e Técnico e Atendimento ao LeitorAtendimento ao LeitorAtendimento ao LeitorAtendimento ao LeitorAtendimento ao Leitor suporte@digerati.com.br (11) 3217-2626 DigDigDigDigDigerererererati Comati Comati Comati Comati Comunicação e unicação e unicação e unicação e unicação e TTTTTecnologecnologecnologecnologecnologia Ltda.ia Ltda.ia Ltda.ia Ltda.ia Ltda. Rua Haddock Lobo, 347 – 12º Andar CEP 01414-001 São Paulo/SP (11) 3217-2600 Fax (11)3217-2617 www.digerati.com DirDirDirDirDiretoretoretoretoretoreseseseses Alessandro Gerardi – (gerardi@digerati.com.br) Luis Afonso G. Neira – (afonso@digerati.com.br) Alessio Fon Melozo – (alessio@digerati.com.br) ISBN: 85-89535-38-X Treinamento Avançado em Excel indice.p65 17/6/2004, 10:442 Prefácio “Você faz uma vez e o Excel faz o resto por você”. Era com esse bordão que eu iniciava minhas explicações sobre o Microsoft Excel durante as aulas que ministrava. Passados alguns anos, continuo certo de que não existe no mer- cado nenhuma ferramenta de produtividade – incluindo as “made in Microsoft” – tão completa quanto o Excel. Com ele, você precisa apenas gastar algumas horas projetando os cálculos e estruturando as informações, para que depois o software faça tudo automatica- mente, mediante um simples comando. Até parece mágica... O Treinamento Avançado em Excel integra uma lista de títulos lançados pela Digerati Books que inclui os livros 101 Dicas de Excel Vol. I e II, Desvendando o Microsoft Excel e Universidade Excel. Este livro, no entanto, tem uma proposta diferenciada: além de abor- dar os novos recursos do Excel 2003 e a criação de funções, abor- da, em profundidade, a criação de macros no Excel. As macros permitem gravar seqüências de procedimentos, de modo que você possa executar uma série de ações repetidas vezes, no momento em que desejar. Por isso, elas são responsáveis pela automatização da maior parte das atividades de quem lida com da- dos e cálculos. Por meio da linguagem VBA (Visual Basic for Applications), as macros permitem que sejam desenvolvidas novas funcionalidades dentro do Excel, fazendo com que o programa se torne muito mais do que uma simples ferramenta de produtividade, ganhando, inclusive, o status de ferramenta de desenvolvimento. É a esse recurso altamente sofisticado que você será apresentado nas próximas páginas. Aproveite para familiarizar-se com ele, para, em pouco tempo, poder colocar o Excel no “piloto automático”, guar- dando seu tempo livre para coisas mais interessantes... Luis Matos luismatos@digerati.com.br Diretor Editorial indice.p65 17/6/2004, 10:443 Índice CAPÍTULO 01 Algumas novidades na versão XP .......................... 09 Localizando planilhas ................................... 09 Exibindo detalhes ......................................... 10 Cabeçalhos e rodapés................................... 11 Diagramas ..................................................... 12 Inserindo novas caixas ........................... 13 Formatando as caixas do seu diagrama .. 13 Alterando o layout .................................. 14 Alinhamento de células ................................ 14 Botão AutoSoma ........................................... 15 Desenhando bordas ...................................... 15 A área de transferência ................................. 16 CAPÍTULO 02 Funções ............................................................... 17 Disponibilizando funções....................... 17 Funções de texto .......................................... 18 Função PROCURAR................................ 18 Função LOCALIZAR ............................... 19 Funções ESQUERDA e LOCALIZAR ........ 19 Funções matemáticas ................................... 19 Função SUBTOTAL ................................. 19 Funções estatísticas ...................................... 21 Função FREQÜÊNCIA ............................ 21 Funções de data e hora ................................ 23 Função DATADIF .................................... 23 Funções de informações .............................. 24 indice.p65 17/6/2004, 10:444 Juntando mais de uma categoria de funções ...... 24 Função PROCV ....................................... 24 CAPÍTULO 03 Gerando gráficos automáticos ............................... 28 Procurando dados específicos ............... 29 Criando o gráfico.......................................... 30 CAPÍTULO 04 Noções de macro .................................................. 33 Macro para classificar dados em uma planilha .. 33 Formas de executar uma macro ................... 35 Teclas de atalho ...................................... 35 Comandos .............................................. 35 Criando botões na planilha .................... 36 Macro para encontrar subtotais .................... 36 Macros de endereços absolutos / relativos ... 37 Macros com endereços absolutos .......... 38 Editando a macro ................................... 38 Macros com endereços relativos ............ 39 Entendendo o código ............................. 40 CAPÍTULO 05 O editor do Visual Basic no Excel .......................... 41 A janela do editor do Visual Basic ................. 41 Módulos ................................................. 43 Objetos ................................................... 43 Eventos da planilha ................................ 44 indice.p65 17/6/2004, 10:445 CAPÍTULO 06 Exibindo mensagens ao usuário ............................ 47 Função MSGBOX .......................................... 47 Outros exemplos de mensagem ................... 48 Capturando respostas do usuário ................. 49 Função INPUTBOX ................................ 50 Adicionando comentários ao código............ 51 CAPÍTULO 07 Criando um formulário no VBA ............................. 52 Criando um formulário................................. 52 A barra de ferramentas do formulário .......... 53 Inserindo um controle ................................. 55 Criando um formulário simples ............. 55 Alterando o nome dos controles .................. 56 A propriedade Caption........................... 56 Alterando os controles do formulário .......... 56 Inserindo uma imagem .......................... 57 Alterando a ordem dos controles ........... 58 Preparando o ambiente dos dados ......... 58 Preparando a tabela de veículos........ 59 Associando Veículos com o controle ... 59 Exibindo o formulário ............................ 60 Exibindo o preço do veículo ........................ 61 Descarregando o formulário da memória 61 indice.p65 17/6/2004, 10:446 CAPÍTULO 08 Manipulando células .............................................62 Métodos de manipulação de células ............. 62 Verificando a área selecionada ............... 62 Inserindo fórmulas em uma célula ......... 63 O método Select e a propriedade Selection .. 63 Exemplos de utilização do método Range ... 63 Propriedade Offset ................................. 67 Atribuindo valores às células da planilha ..... 67 CAPÍTULO 09 Variáveis de memória ............................................ 69 Conceito de variáveis de memória ............... 69 Regras para nomeação em VBA .................... 69 Como definir variáveis ................................. 70 Declarando variáveis .................................... 71 Escopo das variáveis ..................................... 72 Variáveis do nível do procedimento ....... 73 Variável do nível de módulo ................... 73 Variáveis de nível global ......................... 73 Tipos de variável .......................................... 73 CAPÍTULO 10 Estruturas de programação.................................... 75 indice.p65 17/6/2004, 10:447 Estruturas condicionais ................................ 75 As estruturas If ....................................... 75 A estrutura Case Select ........................... 78 Estruturas de looping ................................... 79 Estrutura Do ... Loop .............................. 79 Estrutura For ... Next .............................. 80 Estrutura For Each ... Next...................... 81 Outros exemplos de criação de loops .... 82 Listando arquivos existentes .................. 82 Usando estrutura Do ... Until .................. 83 CAPÍTULO 11 Criando funções .................................................... 84 CAPÍTULO 12 Personalizando o sistema ...................................... 87 Limpeza dos dados para novo cadastramento 87 Criando uma barra de ferramentas ............... 88 Criando uma barra de menus internos ... 89 Anexando uma barra de ferramentas ao arquivo. 89 Anexando macros a botões .......................... 90 Códigos para ativar a barra de ferramentas .. 90 Ocultando a barra de ferramentas ................ 91 Posição de uma barra de ferramentas........... 92 Desabilitando um item da barra ................... 93 Inicializando o sistema ................................. 93 Finalizando seu sistema de cadastro ............. 94 Posicionando o cursor no 1°- registro em branco 94 Ativando o controle spiParcelas ............. 95 A obra completa ..................................... 95 indice.p65 17/6/2004, 10:448 Algumas novidades na versão XP 9 Algumas novidades na versão XP Tem novidade no Excel XP? Tem, sim, senhor! A quinta versão do mais enigmático dos aplicativos do Office traz aqueles pequeno- grandes aperfeiçoamentos de praxe. Conheça, neste capítulo, as ino- vações relacionadas à localização de planilhas, cabeçalhos e rodapés e diagramas. Não se esqueça, é claro, da estréia dos novos botões de AutoSomaAutoSomaAutoSomaAutoSomaAutoSoma e BordasBordasBordasBordasBordas. • LOCALIZANDO PLANILHAS Muitas vezes geramos arquivos que depois de algum tempo não lembramos onde guardamos. Para resolver esse problema, podemos solicitar ao Excel que faça uma pesquisa em nosso computador. Como? Veja nos passos a seguir: Clique no menu ArArArArArquivquivquivquivquivo o o o o > P P P P Pesquisaresquisaresquisaresquisaresquisar. Aparecerá uma caixa de diálogo do lado direito da tela. Preencha-a da seguinte forma: TTTTTeeeeexto de pesquisa:xto de pesquisa:xto de pesquisa:xto de pesquisa:xto de pesquisa:Digite nesse campo o texto que está tentando localizar. PPPPPesquisar em:esquisar em:esquisar em:esquisar em:esquisar em: Selecione o local (pasta) em que deseja pesquisar. O ideal é escolher a opção Meu Computador Meu Computador Meu Computador Meu Computador Meu Computador (como na figura a seguir), dessa forma, serão verificados disquetes, CDs, redes e pastas. 1 Algumas novidades na versão XP cap_01.p65 16/6/2004, 17:409 10 Treinamento avançado em Excel Os resultados devem ser:Os resultados devem ser:Os resultados devem ser:Os resultados devem ser:Os resultados devem ser: Nesta, que é a última opção do menu, podemos escolher o tipo de arquivo que queremos pesquisar – podem ser arquivos de Word, Excel e Access (ou seja, qualquer arquivo do pacote Office), ou mesmo figuras. Para iniciar a pesquisa, pressione o botão PPPPPesquisaresquisaresquisaresquisaresquisar..... • EXIBINDO DETALHES cap_01.p65 16/6/2004, 17:4010 Algumas novidades na versão XP 11 Em versões anteriores ao Windows XP, para ocultar ou visualizar alguns detalhes existentes na planilha, utilizávamos o menu Ferramentas Ferramentas Ferramentas Ferramentas Ferramentas > OpçõesOpçõesOpçõesOpçõesOpções, habilitando ou desabilitando os itens desejados. A partir da versão XP, o processo tornou-se muito mais rápido e podemos utilizar o menu ExibirExibirExibirExibirExibir, que fornece as seguintes opções: • Barra de fórmulas; • Painel de tarefas; • Barra de status. • CABEÇALHOS E RODAPÉS Nas versões anteriores do Excel, para inserir cabeçalhos era necessário clicar em ExibirExibirExibirExibirExibir > ConfConfConfConfConfigurigurigurigurigurararararar > CaCaCaCaCabeçalho/Rodapébeçalho/Rodapébeçalho/Rodapébeçalho/Rodapébeçalho/Rodapé. Nessa guia era possível selecionar um tipo de cabeçalho ou rodapé entre os pré-definidos, ou incluir um novo, clicando no botão PPPPPererererersonalizar casonalizar casonalizar casonalizar casonalizar cabeçalhobeçalhobeçalhobeçalhobeçalho. A partir da versão XP, podemos agilizar essa tarefa no menu Exibir Exibir Exibir Exibir Exibir > CaCaCaCaCabeçalho e rbeçalho e rbeçalho e rbeçalho e rbeçalho e rodapéodapéodapéodapéodapé, e criar um novo cabeçalho por meio do mesmo botão – PPPPPererererersonalizar casonalizar casonalizar casonalizar casonalizar cabeçalho beçalho beçalho beçalho beçalho –, o qual oferece algumas opções que já existiam nas versões anteriores, e outras que são novidades da versão XP: Formata os caracteres selecionados, alterando fonte, tamanho, cor e estilo dos mesmos. Insere o código [&Página], o qual, no momento da impressão, é substituído pelo número da página atual. Insere o código [&Páginas], o qual, no momento da impressão, é substituído pelo número total de páginas existentes na planilha. Insere o código [&Data], o qual, no momento da impressão, é substituído pela data da impressão. Insere o código [&Hora], o qual, no momento da impressão, é substituído pela hora da impressão. cap_01.p65 16/6/2004, 17:4011 12 Treinamento avançado em Excel (*) Insere o código &[Caminho]&[Arquivo], o qual, no momento da impressão, é substituído pelo caminho e nome da planilha atual. Insere o código &[Arquivo], o qual, no momento da impressão, é substituído pelo nome do arquivo. Insere o código &[Guia], o qual, no momento da impressão, é substituído pelo nome da guia da planilha atual. (*) Insere o código &[Figura], o qual, no momento da impressão, é substituído por uma figura pré-selecionada. (*) Formata a figura selecionada, permitindo alterar sua largura e altura, ou mesmo recortá-la. (*) Comandos incorporados a partir da versão XP. • DIAGRAMAS Para inserir diagramas no Excel, clique em Inserir Inserir Inserir Inserir Inserir > Diagramas Diagramas Diagramas Diagramas Diagramas e siga estes passos: Escolha o tipo de diagrama que preferir.1 Clique na caixa desejada e digite o texto que quer inserir.2 cap_01.p65 16/6/2004, 17:4012 Algumas novidades na versão XP 13 Inserindo novas caixas Também é possível inserir novas caixas em seu diagrama. Para isso, faça o seguinte: Clique na caixa que deseja reproduzir. Em seguida, clique no botão InserInserInserInserInserir fir fir fir fir forororororma.ma.ma.ma.ma. Isso fará com que a nova caixaseja inserida logo abaixo da caixa selecionada. Tendo feito isso, basta digitar o texto desejado. Formatando as caixas do seu diagrama Para dar uma aparência pessoal aos seus diagramas, a nova versão do Excel oferece opções especiais: Dê um duplo clique sobre a caixa que deseja personalizar. Aparecerá a caixa de diálogo de formatação, na qual é possível fazer as seguintes alterações: 1 2 3 1 2 cap_01.p65 16/6/2004, 17:4013 14 Treinamento avançado em Excel FFFFFonteonteonteonteonte – – – – – permite alterar tamanho, cor, estilo e efeitos da fonte, além dela própria. Alinhamento – Alinhamento – Alinhamento – Alinhamento – Alinhamento – permite alterar o alinhamento do texto dentro da caixa. CorCorCorCorCores e Linhas – es e Linhas – es e Linhas – es e Linhas – es e Linhas – permite alterar as cores de preenchimento, da linha (moldura) da caixa e das setas (quando existentes). TTTTTamanho – amanho – amanho – amanho – amanho – permite dimensionar, girar e alterar a escala da caixa. Proteção – Proteção – Proteção – Proteção – Proteção – (*) permite bloquear a caixa e o texto existente nela. MarMarMarMarMargggggens – ens – ens – ens – ens – permite alterar as margens do texto dentro da caixa. WWWWWeb – eb – eb – eb – eb – em alguns navegadores irá exibir um texto alternativo para facilitar a pesquisa de objetos, mas no caso de figuras, esse texto é ignorado. (*) Para que este comando seja executado, é necessário proteger a planilha. Alterando o layout Para alterar o layout das caixas, siga estes passos: Selecione a caixa desejada. Dê um clique no botão LaLaLaLaLayyyyyoutoutoutoutout. Escolha um dos layouts existentes. Outra maneira de alterar o layout é simplesmente clicar no bo- tão mostrado na figura: 1 2 3 • ALINHAMENTO DE CÉLULAS Para alinhar rapidamente uma ou mais células, podemos utilizar os botões . A partir da versão XP, encontramos também algumas opções de alinhamento no menu FFFFFororororormatar matar matar matar matar > Células Células Células Células Células > AlinhamentoAlinhamentoAlinhamentoAlinhamentoAlinhamento. São elas: HorHorHorHorHorizontal – izontal – izontal – izontal – izontal – altera o alinhamento horizontal (da esquerda para a direita) do conteúdo de uma célula. cap_01.p65 17/6/2004, 10:3514 Algumas novidades na versão XP 15 VVVVVererererertical – tical – tical – tical – tical – altera o alinhamento vertical (de cima para baixo) do conteúdo de uma célula. ContrContrContrContrControle de teole de teole de teole de teole de texto – xto – xto – xto – xto – esta opção oferece três possibilidades: RetorRetorRetorRetorRetorno automático de teno automático de teno automático de teno automático de teno automático de texto – xto – xto – xto – xto – alinha o texto em mais de uma linha; Reduzir parReduzir parReduzir parReduzir parReduzir para ajustar – a ajustar – a ajustar – a ajustar – a ajustar – reduz o tamanho da fonte para que todo o conteúdo da célula seja apresentado dentro dela; MescMescMescMescMesclar células – lar células – lar células – lar células – lar células – alinha o texto em mais de uma célula ao mes- mo tempo, recurso bastante utilizado para casos em que os títulos estão na primeira linha. OrOrOrOrOrientação – ientação – ientação – ientação – ientação – permite rotacionar o texto dentro da célula. DirDirDirDirDireção do teeção do teeção do teeção do teeção do texto –xto –xto –xto –xto – permite alterar a ordem de leitura dos dados exis- tentes na célula, que pode ser da esquerda para a direita ou o contrário. • BOTÃO AUTOSOMA A partir da versão XP, podemos selecionar um conjunto de célu- las com valores e ativar o botão AAAAAutoSoma utoSoma utoSoma utoSoma utoSoma . Para facilitar o trabalho, foram incorporadas as funções mais uti- lizadas na criação de fórmulas, tais como SOMA, MÉDIA, CONTAR, MÁXIMO E MÍNIMO, entre outras. • DESENHANDO BORDAS Nas versões anteriores do Excel, só era possível criar bordas com linhas na cor preta e praticamente com a mesma espessura. Quem quisesse modificar esse padrão tinha de utilizar o menu Formatar Formatar Formatar Formatar Formatar > CélulasCélulasCélulasCélulasCélulas > BorBorBorBorBordasdasdasdasdas. No Windows XP, além das bordas convencionais, encontramos a opção Desenhar borDesenhar borDesenhar borDesenhar borDesenhar bordasdasdasdasdas. Assim, podem-se criar bordas com os seguintes passos: cap_01.p65 16/6/2004, 17:4015 16 Treinamento avançado em Excel Fórmulas – Fórmulas – Fórmulas – Fórmulas – Fórmulas – cola a última fórmula que foi copiada na planilha. VVVVValoraloraloraloralores – es – es – es – es – cola o valor da célula, ou seja, ignora a fórmula e inse- re somente o resultado do cálculo. Sem bordas – Sem bordas – Sem bordas – Sem bordas – Sem bordas – cola a fórmula na célula atual e ignora a borda formatada. TTTTTrrrrranspor – anspor – anspor – anspor – anspor – cola as células em posição inversa. Suponha, por exem- plo, que você tenha selecionado várias células que estejam dispostas em uma linha; na transposição, as mesmas células serão coladas, só que agora dispostas em colunas. Colar vínculo – Colar vínculo – Colar vínculo – Colar vínculo – Colar vínculo – cola o vínculo do arquivo, ou seja, insere a fór- mula, bem como todo o caminho utilizado para a sua criação. Dessa forma, ao atualizar os dados da planilha de origem, a planilha de destino é atualizada. Colar especial – Colar especial – Colar especial – Colar especial – Colar especial – cola os dados como um objeto. 3 • A ÁREA DE TRANSFERÊNCIA Para colar um objeto utilizamos o botão , o qual insere na po- sição atual do cursor o conteúdo da área de transferência. Na ver- são XP foram incorporadas novas tarefas ao botão: Clique no botão Cor da linha:Cor da linha:Cor da linha:Cor da linha:Cor da linha: Aparecerá um lápis indicando que deve ser riscada a célula na qual desejamos criar a linha: Ative o botão Desenhar bordasDesenhar bordasDesenhar bordasDesenhar bordasDesenhar bordas. Clique no botão Estilo da linha:Estilo da linha:Estilo da linha:Estilo da linha:Estilo da linha: 1 2 cap_01.p65 16/6/2004, 17:4016 Funções 17 Funções As funções são o centro nervoso do Excel. Não, não se trata de recursos que causam chiliques a torto e a direito. Muito pelo contrário: é por meio das funções que conseguimos agilizar cálculos e elaborar planilhas sofisti- cadas. E há funções para todo tipo de operação. Desde as somas mais simples até intrincadas fórmulas estatísticas, esse é o caminho das pedras! Neste capítulo, trataremos de uma parte muito importante do Excel: as funções avançadas de texto, matemática, estatística e de data e hora. Afinal de contas, por mais que se trabalhe com uma ferramenta, há sempre alguma coisa a aprender! Aqui, você vai aprender a: • Adicionar novas funções ao Excel por meio de suplementos; • Localizar textos e códigos em células; • Trabalhar com duas ou mais funções em uma só; • Efetuar outros cálculos usando a função SUBTOTAL; • Efetuar cálculos estatísticos com a função FREQÜÊNCIA; • Identificar as mensagens de erro apresentadas em funções. O Microsoft Excel possui cerca de 329 funções, divididas nas seguin- tes categorias: • Financeiras • Data e hora • Matemática e trigonométrica • Estatística • Procura e referência • Banco de dados • Texto • Lógica • Informações Disponibilizando funções Algumas funções podem não estar disponíveis quando você quiser usá-las, sendo necessário torná-las disponíveis. Para isso, basta clicar em FerramentasFerramentasFerramentasFerramentasFerramentas > SuplementosSuplementosSuplementosSuplementosSuplementos. Surgirá a seguinte tela: cap_02.p65 16/6/2004, 17:3917 18 Treinamento avançado em Excel Habilite a caixa de seleção Ferramentas de análise Ferramentas de análise Ferramentasde análise Ferramentas de análise Ferramentas de análise para que todas as funções fiquem disponíveis. Para inserir funções, utilize o botão de InserirInserirInserirInserirInserir funçãofunçãofunçãofunçãofunção . . . . . Confira, agora, algumas funções interessantes: • FUNÇÕES DE TEXTO Função PROCURAR Imagine que você queira localizar uma determinada seqüência de caracteres existente em uma célula – por exemplo, o código de um produto que esteja na mesma célula em que está o nome do produto, como no exemplo a seguir: Para isso, você pode utilizar a função PROCURAR, que possui a seguinte sintaxe: =PROCURAR(texto a localizar;célula com o texto;nº inicial) Em que: TTTTTeeeeexto a localizarxto a localizarxto a localizarxto a localizarxto a localizar – é o texto que você deseja localizar. Se o conteúdo a procurar for um número, basta digitá-lo diretamente dentro dos parênte- ses, sem nenhuma formatação. Para procurar o valor R$ 2500,00, por exemplo, digite apenas 2500. Se o conteúdo não for numérico (por exem- plo, o símbolo #), você deve digitá-lo entre aspas (“”). cap_02.p65 16/6/2004, 17:3918 Funções 19 Célula com o textoCélula com o textoCélula com o textoCélula com o textoCélula com o texto – é o endereço da célula em que o símbolo, valor ou texto deve ser procurado. NNNNNooooo- inicial- inicial- inicial- inicial- inicial – é o parâmetro no qual você pode especificar a partir de qual caractere a pesquisa deve ser iniciada. É possível, por exemplo, procurar o símbolo # a partir da posição 20. Caso você não especifique o número inicial, o Excel vai considerar que a pesquisa deve ser iniciada a partir do primeiro caractere (11111). No exemplo a seguir, o Excel vai localizar o símbolo # dentro do conteúdo da célula A2: Função LOCALIZAR Outra função que faz pesquisa de caracteres é a LOCALIZAR. A diferença entre ela e a função PROCURAR é que a segunda faz distinção entre maiúsculas e minúsculas, enquanto a LOCALIZAR não faz: Usando a função ESQUERDA com a função LOCALIZAR A função ESQUERDA retorna um número X de caracteres a partir de um determinado texto, da esquerda para a direita. O número de caracteres X é você quem especifica. Suponha que, na tabela da figura a seguir, você queira retirar apenas a descrição dos produtos. A melhor maneira de fazer isso é usar conjun- tamente as funções ESQUERDA e LOCALIZAR: • FUNÇÕES MATEMÁTICAS Função SUBTOTAL Essa função retorna um subtotal em um banco de dados, podendo execu- tar a soma, a média, o mínimo e o máximo, entre outras operações, em uma lista de dados. A sintaxe da função SUBTOTAL é a seguinte: cap_02.p65 16/6/2004, 17:3919 20 Treinamento avançado em Excel =SUBTOTAL (número da função; células a calcular) Em que: Número da funçãoNúmero da funçãoNúmero da funçãoNúmero da funçãoNúmero da função – é um número entre 1 e 11 que especifica qual função deve ser usada para calcular o subtotal. No Excel, cada função corresponde a um número, como mostra a tabela a seguir: Número da funçãoNúmero da funçãoNúmero da funçãoNúmero da funçãoNúmero da função FunçãoFunçãoFunçãoFunçãoFunção 11111 MÉDIA 22222 CONTA 33333 CONT.VALORES 44444 MÁX 55555 MÍN 66666 MULT 77777 DESVPAD 88888 DESVPADP 99999 SOMA 1010101010 VAR 1111111111 VARP Veja um exemplo de utilização da função SUBTOTAL: cap_02.p65 16/6/2004, 17:3920 Funções 21 Nessa tabela, as células B13:B16 trazem os valores das faixas de preço: a primeira faixa vai até R$ 15.000,00; a segunda faixa vai de R$ 15.001,00 até R$ 25.000,00; e assim por diante. Veja que, apesar de isso não aparecer diretamente nos valores das células, a faixa posterior não inclui o último valor da faixa anterior – por exemplo, a segunda faixa não inclui o valor R$ 15.000,00, mas sim o valor seguinte, que é de R$ 15.001,00. Vejamos, agora, como fazer para saber a freqüência de cada uma dessas faixas de preço no Excel: Defina as faixas de dados que deseja analisar. No nosso exemplo, elas foram criadas nas células B13:B16. Selecione as células adjacentes à coluna com as faixas de dados (C13:C17). Clique sobre o botão Inserir funçãoInserir funçãoInserir funçãoInserir funçãoInserir função . Será aberta esta janela: 1 2 3 Função FREQÜÊNCIA Calcula a freqüência de determinados valores dentro de um intervalo de valores, retornando uma matriz. Imagine que você tenha, por exemplo, uma representação de veículos, e queira saber o número de modelos, por cidade, que se encaixam em determinadas faixas de preço – isto é, a fre- qüência dessas faixas de preço entre os modelos de carros. Esse exemplo pode ser observado na tabela da figura a seguir: • FUNÇÕES ESTATÍSTICAS cap_02.p65 16/6/2004, 17:3921 22 Treinamento avançado em Excel Selecione a função FREQÜÊNCIA e dê OKOKOKOKOK. Na caixa de diálogo que aparecer, clique no botão com a seta ver- melha ao lado do primeiro campo. Na planilha, selecione a área que contém os dados a serem analisados (B2:E11): 4 5 Na janela que aparecer, clique no botão com a seta vermelha, no primeiro campo, para voltar à tela de inserção da função FREQÜÊNCIA. Agora clique no botão com a seta vermelha ao lado do segundo campo. Na planilha, selecione as células que contêm as faixas de dados que vão servir de base para o cálculo (B13:B16). Pressione as teclas Ctrl + Shift + Enter para que sejam inseridos os valores correspondentes a cada uma das faixas. Não use a tecla Enter sozi- nha, ou o resultado será inserido somente na primeira célula: 6 7 cap_02.p65 16/6/2004, 17:3922 Funções 23 • FUNÇÕES DE DATA E HORA Função DATADIF Para calcular a diferença entre duas datas, levando em conta o número de dias, meses ou anos, use a função DATADIF, que possui a seguinte sintaxe: =DATADIF(data_inicial;data_final;tipo de diferença desejado) Na qual tipo de diferença desejado pode ser representado como: A seguir, veja um exemplo de uso da função DATADIF com diferen- tes formatos para o retorno do valor: Unidade Retorno “Y” O número de anos completos entre a data inicial e a data final. “M” O número de meses completos entre a data inicial e a data final. “D” O número de dias completos entre a data inicial e a data final. “MD” A diferença entre as datas inicial e final, sendo que meses e anos são ignorados. “YD” A diferença entre as datas inicial e final, sendo que dias e anos são ignorados. cap_02.p65 16/6/2004, 17:3923 24 Treinamento avançado em Excel • JUNTANDO MAIS DE UMA CATEGORIA DE FUNÇÕES Função PROCV A função PROCV efetua uma pesquisa no sentido vertical em uma tabela de dados, retornando um dado existente em qualquer uma das colunas. Sua sintaxe é: =PROCV(valor procurado;matriz_tabela_número índice coluna) Ou seja: =PROCV(o que pesquisar;área a pesquisar;número da coluna a trazer) Imagine a seguinte tabela: • FUNÇÕES DE INFORMAÇÕES As funções de informações são aquelas que analisam fórmulas e condi- ções e respondem com VERDADEIRO ou FALSO. Elas são bastante úteis para verificar o tipo de conteúdo de determinadas células, se estão vazias ou não, se estão preenchidas com textos ou números etc. A tabela a seguir mostra exemplos das principais funções lógicas: cap_02.p65 16/6/2004, 17:3924 Funções 25 1 Nomeie a área com o catálogo dos filmes como FITAS, selecionando as células e indo ao menu InserirInserirInserirInserirInserir > Nome Nome Nome Nome Nome > DefinirDefinirDefinirDefinirDefinir; ou então digitando o nome diretamente na Caixa de nomeCaixa de nomeCaixa de nomeCaixa de nomeCaixa de nome e pressionando Enter. Crie a tabela com os dados das vendas. Posicione o cursor na célula D4 (ou na célula em que quiser que apareça o resultado da busca). Clique no botão Inserir função Inserir função Inserir funçãoInserir função Inserir função . . Selecione as funções de ProcuraProcuraProcuraProcuraProcura e ReferênciaReferênciaReferênciaReferênciaReferência. 2 3 4 5 6 7 Clique sobre a função PROCVPROCVPROCVPROCVPROCV e dê OKOKOKOKOK. Insira os argumentos da função, conforme o exemplo abaixo: Para verificar qual é o nome de determinado filme (título), siga estes passos: cap_02.p65 16/6/2004, 17:3925 26 Treinamento avançado em Excel Pressione OKOKOKOKOK; com isso, será informado o nome do filme que você está procurando. Copie para as células abaixo. Experimente alterar o código do filme para ver o Excel preencher os campos automaticamente. Se o usuário por acaso escolher um filme que não existe na lista, o Excel vai retornar este erro: 8 9 Para evitar esse tipo de problema, podemos criar uma combinação com as funções lógicas SE, ÉERROS e PROCV, como mostra a explica- ção a seguir: Vamos começar conhecendo a sintaxe de cada uma das três fun- ções que vamos usar: =SE (condição; faça caso condição verdadeira; faça caso condi- ção falsa) =ÉERROS(fórmula) =PROCV(valor procurado; local a procurar; coluna desejada) Para juntar as três funções, devemos construir uma expressão com esta sintaxe: =SE(ÉERRROS (PROCV)); exiba 0; exiba o resultado de PROCV) 1 2 cap_02.p65 16/6/2004, 17:3926 Funções 27 Deixe o cursor no primeiro PROCV (título do filme) e pressione o botão Inserir funçãoInserir funçãoInserir funçãoInserir funçãoInserir função para editar o conteúdo da fórmula, pois agora você vai adicionar as funções SE e ÉERROS. Para inserir novas funções, utilize a área com a Caixa de nomeCaixa de nomeCaixa de nomeCaixa de nomeCaixa de nome, que agora exibe a última função utilizada: 3 4 5 6 Utilize a função SE, inserindo os dados mostrados na figura: Editando a função com a Caixa de nomeCaixa de nomeCaixa de nomeCaixa de nomeCaixa de nome, você pode ir de uma função a outra com um clique sobre a Barra de fórmulasBarra de fórmulasBarra de fórmulasBarra de fórmulasBarra de fórmulas: cap_02.p65 16/6/2004, 17:3927 28 Treinamento avançado em Excel Gerando gráficos automáticos O que todo mundo quer, hoje em dia, é poder apertar um único botão e, com isso, resolver todos os problemas. Nada de errado nis- so, pelo menos em se tratando de gerenciamento de dados. Que tal construir gráficos que se atualizem automaticamente quando a ta- bela de dados for alterada? Que tal ter à mão um sistema que varra a sua planilha e gere um gráfico a partir dos dados de que você precisa? Excelente, não? E o melhor: não é difícil. Ao menos, não com os recursos oferecidos pelo Excel. Veja como construir um gráfico dinâmico que incorpore recur- sos de formulários e lista de dados: Crie, em uma planilha em branco, a seguinte tabela de dados:1 Selecione as células com os nomes das publicações (A3:A8) e nomeie esse intervalo como PRODUTOS. Selecione todos os dados (A2:G8) e nomeie esse intervalo como VENDAS. Vá até a Plan2 e inclua nela estes dados: 2 3 4 Ative a barra de ferramentas de formulários com o comando ExibirExibirExibirExibirExibir > BarBarBarBarBarrrrrra de fa de fa de fa de fa de ferererererrrrrramentasamentasamentasamentasamentas > FFFFFororororormmmmmuláruláruláruláruláriosiosiosiosios. 5 Gerando gráficos automáticos cap_03.p65 16/6/2004, 17:3928 Gerando gráficos automáticos 29 Insira um controle de caixa de combinação, clicando neste botão:6 Agora você precisa ativar as propriedades do controle que aca- bou de criar. Para isso, clique nele com o botão direito do mouse, dê um clique sobre a opção FFFFFororororormatar contrmatar contrmatar contrmatar contrmatar controleoleoleoleole, e, depois, preencha os campos da janela como mostra a figura: 7 Procurando dados específicos Ainda usando o mesmo documento do Excel que você criou, vamos procurar alguns dados específicos, como, por exemplo, o nome de determinado produto. Isso pode ser feito usando-se a fun- ção ÍNDICE, que tem a seguinte sintaxe: =ÍNDICE(área a ser varrida; nº da linha; nº da coluna) Os nomes dos produtos estão no intervalo de células PRODU- TOS; portanto, essa é a área que deve ser varrida. A linha que você procura é aquela na qual foi vinculado o controle de caixa de com- binação – logo, trata-se do resultado existente em C3. Dessa forma, a função para verificar o nome do produto deverá ser: cap_03.p65 16/6/2004, 17:3929 30 Treinamento avançado em Excel Se, em vez do nome de um produto, você quiser verificar os dados de JAN, basta aplicar esta fórmula: Repare que, para os meses, você deve alterar apenas o número da coluna. Assim, quando for selecionar uma nova publicação, aparece- rão os dados referentes às vendas expressas nessa coluna. • CRIANDO O GRÁFICO Para criar um gráfico com os dados da planilha, comece selecio- nando as duas linhas que contêm os dados da venda, ou seja, a linha que apresenta os nomes dos meses e a linha que traz os valores das vendas. Feito isso, você já pode ativar o assistente de gráficos para criar um gráfico do tipo “pizza”, seguindo este passo-a-passo: Selecione os dados. Clique no botão Assistente de gAssistente de gAssistente de gAssistente de gAssistente de gráfráfráfráfráficoicoicoicoico. 1 2 cap_03.p65 16/6/2004, 17:3930 Gerando gráficos automáticos 31 Clique na opção de gráfico do tipo “pizza”.3 4 Clique no botão AAAAAvvvvvançarançarançarançarançar. Defina a opção SérSérSérSérSéries emies emies emies emies em como LinhasLinhasLinhasLinhasLinhas e clique em AAAAAvvvvvançarançarançarançarançar.5 Desabilite a opção Mostrar legendaMostrar legendaMostrar legendaMostrar legendaMostrar legenda na guia LegendaLegendaLegendaLegendaLegenda.6 cap_03.p65 16/6/2004, 17:3931 32 Treinamento avançado em Excel Na guia Rótulo de dadosRótulo de dadosRótulo de dadosRótulo de dadosRótulo de dados, habilite as opções PorcentagemPorcentagemPorcentagemPorcentagemPorcentagem e NomeNomeNomeNomeNome da categoriada categoriada categoriada categoriada categoria. 7 Pressione AAAAAvvvvvançarançarançarançarançar e, na tela que surgir, selecione a opção Como objeto emComo objeto emComo objeto emComo objeto emComo objeto em, para que o gráfico seja posicionado como um objeto na planilha. 8 A cada vez que você selecionar um produto diferente, o Excel irá criar um novo gráfico, de acordo com os dados selecionados. 9 cap_03.p65 16/6/2004, 17:3932 Algumas novidades na versão XP 33 Noções de macro Imagine ter de digitar as mesmas informações todos os dias, a cada 15 minutos. Veja: isso não é uma obra de ficção. Para quem trabalha com serviços financeiros e administrativos – ou seja, 90% do pessoal do escri- tório de uma empresa –, esse tipo de situação pode ser realmente roti- neiro. Mas, felizmente, existem as macros, pequenas aplicações que po- dem nos ajudar a economizar muito tempo e poupar nossa paciência. Neste capítulo, você verá que o sonho da rapidez no trabalho é possível. Uma macro nada mais é do que uma seqüência de comandos arma- zenada em um botão. Usando macros, você pode gerar gráficos com configurações especiais, aplicar cálculos extensos repetidas vezes, entre muitos outros procedimentos, apenas clicando em um botão. Basta criar macros bem elaboradas. Neste capítulo, você vai deparar freqüentemente com o termo VVVVVisualisualisualisualisual Basic fBasic fBasic fBasic fBasic for or or or or AAAAApplicationspplicationspplicationspplicationspplications, o famoso VBVBVBVBVBAAAAA, que é uma linguagem de progra- mação voltada para aplicativos. O VBA vem incorporado ao Office, e, por isso, pode ser utilizado em qualquer aplicativo desse pacote, como o MS Excel, o MS Word, o MS Access etc.. Todo código gerado no VBA é compi- lado, e, por esse motivo, executa loops (laços) de programação rapida- mente. Outravantagem de utilizar o VBA é que o código gerado pode ser lido em qualquer aplicativo Microsoft, garantindo uma padronização no modo de programação. • MACRO PARA CLASSIFICAR DADOS EM UMA PLANILHA Para entender um pouco sobre macros, nada melhor do que partir para a prática e criar uma macro simples. Por enquanto, você vai seleci- onar a ação para a sua macro a partir de uma lista pré-definida. No caso, vamos criar uma macro para classificar os dados mostrados na planilha a seguir: Noções de macro cap_04.p65 16/6/2004, 17:3833 34 Treinamento avançado em Excel A sua macro vai se chamar CLASSIFICA. Posicione o cursor em qualquer célula e vá ao menu FerramentasFerramentasFerramentasFerramentasFerramentas > Macro >Macro >Macro >Macro >Macro > Gravar novaGravar novaGravar novaGravar novaGravar nova macromacromacromacromacro, para acessar esta tela: 1 Digite o nome da macro (CLASSIFICA) e observe as opções disponíveis: Nome da macro Nome da macro Nome da macro Nome da macro Nome da macro – Procure escolher um nome significativo, e que tenha a ver com a função que a macro vai executar. TTTTTecececececla de atalho la de atalho la de atalho la de atalho la de atalho – solicita ao MS Excel que rode todas as macros por meio de teclas de atalho (por exemplo, Ctrl + C). Mas, cuidado com essa opção, pois, se existir algum comando que utilize as mesmas teclas, ele será desabilitado, e a macro passará a funcionar em seu lugar. Armazenar macro em Armazenar macro em Armazenar macro em Armazenar macro em Armazenar macro em – as tarefas a ser executadas são arquivadas em um determinado local. Esse local pode ser a Pasta pessoal de macrosPasta pessoal de macrosPasta pessoal de macrosPasta pessoal de macrosPasta pessoal de macros, que irá criar um arquivo Pessoal.XLS (uma pasta oculta que permanecerá na pasta de inicialização do MS Excel); uma Nova pasta de trabalhoNova pasta de trabalhoNova pasta de trabalhoNova pasta de trabalhoNova pasta de trabalho, que irá criar um arquivo (planilha) para armazenar somente a macro e a última opção; 2 cap_04.p65 16/6/2004, 17:3834 Algumas novidades na versão XP 35 ou a pasta de trabalho atual (opção Esta pasta de trabalhoEsta pasta de trabalhoEsta pasta de trabalhoEsta pasta de trabalhoEsta pasta de trabalho), que faz com que o arquivo de macros seja armazenado juntamente com a planilha atual. Escolhendo essa última opção, se a planilha atual for movida ou copiada para um outro local, as macros irão junto com ela. Ao pressionar OKOKOKOKOK, todos os comandos a ser executados na planilha serão armazenados. Por isso, fique atento: se você cometer algum erro, pode ser mais fácil excluir a macro e começar tudo de novo do que tentar consertar o erro. Posicione o cursor no primeiro registro da tabela (célula B5) e utilize o menu DadosDadosDadosDadosDados > ClassifClassifClassifClassifClassificaricaricaricaricar. Escolha, primeiro a opção PPPPPaísaísaísaísaís, e, em seguida, ProdutoProdutoProdutoProdutoProduto. Depois de fazer a classificação, pressione o botão Parar gravaçãoParar gravaçãoParar gravaçãoParar gravaçãoParar gravação. 3 4 5 • FORMAS DE EXECUTAR UMA MACRO Uma vez que você já tenha criado a sua macro, como fazer para rodá-la? É simples. Você pode usar as teclas de atalho – selecionadas durante o desenvolvimento da macro –, comandos, ou botões. Teclas de atalho Para rodar uma macro usando teclas de atalho, basta pressionar as teclas definidas na hora da sua criação. Comandos Para acessar o comando que apresenta as macros disponíveis, faça o seguinte: Pressione as teclas Alt + F8. Dê um clique no nome da macro que quer executar e pressione o botão ExExExExExecutarecutarecutarecutarecutar. 1 2 cap_04.p65 16/6/2004, 17:3835 36 Treinamento avançado em Excel Criando botões na planilha Outra maneira de executar a macro é criar um botão para ela: Ative a barra de ferramentas de formulários em ExibirExibirExibirExibirExibir > Barra deBarra deBarra deBarra deBarra de ferramentasferramentasferramentasferramentasferramentas > FormuláriosFormuláriosFormuláriosFormuláriosFormulários. Dê um clique na opção Botão de comandosBotão de comandosBotão de comandosBotão de comandosBotão de comandos. 1 2 Clique e arraste sobre a planilha no ponto em que deseja criar o botão. O Excel exibirá uma lista com as macros existentes. Clique sobre a macro que você quer associar ao botão: 3 Para alterar o texto do botão, basta clicar dentro dele e editar o texto:4 • MACRO PARA ENCONTRAR SUBTOTAIS Vamos criar, ainda na mesma planilha em que você gravou a macro para classificação por País e Produto, uma segunda macro, para encon- trar o subtotal de cada país. Siga estes passos: Ative a gravação de novas macros, indo ao menu FerramentasFerramentasFerramentasFerramentasFerramentas > MacrosMacrosMacrosMacrosMacros > Gravar nova macroGravar nova macroGravar nova macroGravar nova macroGravar nova macro. 1 cap_04.p65 16/6/2004, 17:3836 Algumas novidades na versão XP 37 Nomeie a macro como SUBTOTAIS e dê OKOKOKOKOK. Posicione o cursor sobre o primeiro registro (B5) e clique em DadosDadosDadosDadosDados > SubtotaisSubtotaisSubtotaisSubtotaisSubtotais. Pressione OKOKOKOKOK e calcule um novo subtotal, agora por produto. Des- ta vez, não se esqueça de desabilitar a opção Substituir subtotais atu-Substituir subtotais atu-Substituir subtotais atu-Substituir subtotais atu-Substituir subtotais atu- aisaisaisaisais. Dê OKOKOKOKOK. 2 3 Para executar a macro, desative os subtotais criados, indo ao menu DadosDadosDadosDadosDados > SubtotaisSubtotaisSubtotaisSubtotaisSubtotais e pressionando o botão Remover todosRemover todosRemover todosRemover todosRemover todos e, em se- guida, OKOKOKOKOK. 5 4 6 Crie um botão para a execução dessa macro: • MACROS DE ENDEREÇOS ABSOLUTOS / RELATIVOS No tópico anterior, você criou duas macros. Se reparar nas referên- cias que essas macros fazem às células que contêm as fórmulas, vai perceber que esses endereços são absolutos. O que isso quer dizer? Por exemplo: ao selecionarmos o intervalo de células A1:F4 e alterarmos o estilo para negrito, sempre que executarmos a macro, o mesmo endere- ço, tendo conteúdo ou não, será alterado para negrito. Ou seja, uma cap_04.p65 16/6/2004, 17:3837 38 Treinamento avançado em Excel Para visualizar o efeito da macro que você acabou de criar, execute- a várias vezes. Você irá perceber que o cursor insere o nome, o endereço e o telefone sempre na mesma linha (22222). Editando a macro Para editar a macro, use o comando FerramentasFerramentasFerramentasFerramentasFerramentas > MacrosMacrosMacrosMacrosMacros. Na janela que aparecer, dê um clique sobre o nome da macro desejada e pressione o botão EditarEditarEditarEditarEditar. Se preferir usar teclas de atalho para abrir o Editor do Visual Basic, basta pressionar Alt + F11. Editando a macro ABSOLUTOS no editor do Visual Basic, você verá estas instruções: Posicione o cursor em A2 e ative o gravador de macros. Nomeie a macro como ABSOLUTOS e dê OKOKOKOKOK. Digite seu nome e pressione a tecla Tab. Digite seu endereço e, novamente, pressione Tab. Digite seu telefone e pare a gravação da macro. 1 2 3 4 5 macro com endereço absoluto será executada sempre na mesma posi- ção na planilha. Já uma macro com endereço relativo pode atuar sobre outras célu- las que não a que serviu originalmente como base. Portanto, quando precisamos executar um procedimento em várias células da planilha, o melhor a fazer é utilizar um endereço relativo. Macros com endereços absolutos Para entender a diferença entre os dois tipos de endereços, digite a planilha abaixo: cap_04.p65 16/6/2004, 17:3838 Algumas novidades na versão XP 39 Macros com endereços relativos Vamos, agora, criar uma macro com endereço relativo. Para isso, sigaestes passos: Apague o conteúdo da linha 2 para gravar uma nova macro. Posicione o cursor na célula A2 e grave uma nova macro com o nome RELATIVOS. Observe que, assim que o gravador de macros for iniciado, apare- cerá na tela uma pequena barra de ferramentas com dois botões: 1 2 3 4 5 6 7 8 9 10 Clique sobre o botão Referência relativaReferência relativaReferência relativaReferência relativaReferência relativa ..... Na célula A2, digite seu nome e pressione a tecla Tab. Em B2, digite seu endereço e pressione Tab. Em C2, digite seu telefone. Pressione a seta para baixo para passar para a linha de baixo. Posicione o cursor sob a célula que contém o seu nome (A3). Pare a gravação da macro. Execute a macro várias vezes e observe a diferença entre o comportamento dela e o da macro ABSOLUTOS. cap_04.p65 16/6/2004, 17:3839 40 Treinamento avançado em Excel 11 ComandoComandoComandoComandoComando DescriçãoDescriçãoDescriçãoDescriçãoDescrição ActiveCell Célula ativa. ActiveCell.Select Seleciona a célula ativa. ActiveCell.FormulaR1C1=”Sandra” Insere, na célula ativa, o conteúdo Sandra. ActiveCell.Offset(0,1) Desloca o cursor 0 linhas para baixo e uma coluna para a direita. ActiveCell.Offset(1,-2) Desloca o cursor uma linha para baixo e duas colunas para a esquerda. Entendendo o código Edite a macro no editor do Visual Basic (Alt + F11). Você verá as seguintes instruções: cap_04.p65 16/6/2004, 17:3840 O editor do Visual Basic no Excel 41 O editor do Visual Basic no Excel As macros realmente facilitam a vida, não? E o que vimos até aqui é apenas o começo. Se você quiser se aventurar pelo mundo da automatização de processos, vale a pena dedicar algum tempo ao estudo do Visual Basic. Neste capítulo, apresentaremos uma vi- são geral sobre o editor do VB que vem embutido no MS Excel. Com um pouco de perseverança, você poderá fazer parte daquele seleto clube de pessoas que dizem: “Fazer o relatório estatístico dessas dez planilhas? É simples: espera um minutinho que eu crio uma macro para isso...” A primeira coisa a fazer é familiarizar-se com o ambiente de tra- balho oferecido pelo editor do Visual Basic. Só para lembrar, para abrir o editor basta pressionar Alt + F11 ou ir ao menu FFFFFerererererrrrrramen-amen-amen-amen-amen- tastastastastas > MacrMacrMacrMacrMacrososososos > Editor do Editor do Editor do Editor do Editor do VVVVVisual Basicisual Basicisual Basicisual Basicisual Basic. Se preferir abrir a tela do editor do VBA diretamente para uma macro que já exista no seu documento, você pode ir até FFFFFerererererrrrrramentasamentasamentasamentasamentas > MacrMacrMacrMacrMacrososososos > MacrMacrMacrMacrMacrooooo, clicar sobre o nome da macro a ser editada, e depois no botão EditarEditarEditarEditarEditar. • A JANELA DO EDITOR DO VISUAL BASIC O editor do Visual Basic no Excel cap_05.p65 16/6/2004, 17:3841 42 Treinamento avançado em Excel ProjetoProjetoProjetoProjetoProjeto – Nesta janela, encontramos a hierarquia do projeto que está sendo editado. Ela mostra o nome do arquivo de projeto (*.xls), as planilhas que ele contém etc.. Ou seja, a janela ProjetoProjetoProjetoProjetoProjeto permite visualizar os objetos da aplicação atualmente aberta (pasta de trabalho, docu- mentos e módulos). Caso não esteja visualizando essa área, pressione o botão ou tecle Ctrl + R. Nessa janela existem ainda três ícones que permitem alterar o modo de visualização da estrutura: Abre uma tela (página) com os módulos (rotinas) de classe da aplicação. Exibir código Exibe a janela de módulo que contém o código em VBA que está associado ao objeto selecionado. Alterna entre a janela do Editor do Vi- sual Basic e a janela original da aplica- ção, com o objeto selecionado. Exibir objeto Alternar entre pastas Faz com que a exibição da janela PrPrPrPrPro-o-o-o-o- jetojetojetojetojeto alterne entre a hierarquia dos ob- jetos e uma lista simples dos mesmos. Na janela PrPrPrPrProjetoojetoojetoojetoojeto, repare que há vários ícones diferentes. O signifi- cado deles está na tabela a seguir: Permite a abertura de todos os objetos de uma pasta de trabalho, como planilhas, formulários, módulos etc.. Pasta1 é o nome do arquivo que está sendo editado no momento; quando o arquivo é salvo, o nome é substituído pelo que você escolher. É a referência à pasta de trabalho que está aberta no momento. Mostra também to- dos os eventos (procedimentos) perten- centes a essa pasta, tais como abertura de arquivo, fechamento de arquivo etc. Exibe a folha de código com as rotinas para a planilha específica. Abre uma tela com os códigos existen- tes para a criação de rotinas (macros) diversas para essa pasta de trabalho. cap_05.p65 17/6/2004, 10:3842 O editor do Visual Basic no Excel 43 PropriedadesPropriedadesPropriedadesPropriedadesPropriedades – mostra o nome do módulo em uso e suas proprie- dades atuais. Esta janela se divide em duas seções, uma com as proprie- dades em ordem alfabética, e outra com as mesmas propriedades sepa- radas por categorias de comandos. MóduloMóduloMóduloMóduloMódulo – esta janela exibe o módulo atual. Módulo é a unidade básica de um código em VBA, e funciona como se fosse um local em que são armazenadas todas as macros criadas. Podemos também descrever módulo como uma seqüência de instruções que ensina ao MS Excel o que fazer. Área de trabalho Área de trabalho Área de trabalho Área de trabalho Área de trabalho – trata-se da área disponível para a manipulação dos módulos. Módulos Na tabela que acabamos de mostrar, falamos muito em módulomódulomódulomódulomódulo. Como dissemos, um módulo é como um local em que são armaze- nadas todas as macros criadas. Todo módulo possui procedimentos, que são as normas para a condução da tarefa. No VBA, todos os procedimentos devem começar com a instru- ção SUB ou FUNCTION. Para entender melhor, observe o código da macro ABSOLUTOS, que você criou no começo deste capítulo: Abre o formulário criado pelo usuário. Abre uma tela (página) com os módulos (rotinas) de classe da aplicação. cap_05.p65 17/6/2004, 10:3843 44 Treinamento avançado em Excel Objetos Outro conceito importante na programação com VBA é o de objetos. Temos vários objetos dentro de um aplicativo: por exem- plo, uma barra de ferramentas, uma planilha aberta, uma caixa de texto etc.. Portanto, um objeto é um elemento controlável por meio da linguagem VBA, e que é utilizado na execução de tarefas. No VBA, quando você se refere a um objeto, na verdade está se referindo a uma coleção de objetos que inclui o objeto em si. As- sim, a referência deve conter primeiramente o nome da coleção à qual o objeto pertence, e depois qual o item específico. Veja alguns exemplos de referências a objetos no VBA: Os objetos organizam-se em uma hierarquia. No topo dela en- contra-se o objeto AAAAApplicationpplicationpplicationpplicationpplication, que, no nosso caso, é o próprio Excel. Abaixo de AAAAApplicationpplicationpplicationpplicationpplication, em ordem decrescente de nível hierárqui- co, aparecem os objetos WWWWWorororororkbookkbookkbookkbookkbook, AddInAddInAddInAddInAddIn, DialogDialogDialogDialogDialog, MenMenMenMenMenuBaruBaruBaruBaruBar, TTTTToolBaroolBaroolBaroolBaroolBar, WWWWWindoindoindoindoindowwwww, e assim por diante. Para nos referir a um deles, precisamos informar a que coleção pertence o objeto e qual é esse objeto: WWWWWorororororkSheets(“Plan1.xls”)kSheets(“Plan1.xls”)kSheets(“Plan1.xls”)kSheets(“Plan1.xls”)kSheets(“Plan1.xls”) Coleção de objetos WWWWWorororororksheetksheetksheetksheetksheet (plani- lhas), referindo-se ao objeto Plan1. RangRangRangRangRange(“e(“e(“e(“e(“A1:C3”).SelectA1:C3”).SelectA1:C3”).SelectA1:C3”).SelectA1:C3”).SelectColeção de objetos RangRangRangRangRangeeeee que se refere às áreas. WWWWWorororororkBookskBookskBookskBookskBooks Coleção de objetos WWWWWooooorrrrrksksksksksbookbookbookbookbook pas- tas de trabalho. O tipo mais comum de referência é aquele feito a uma planilha ou a células de uma planilha. Tanto planilhas quanto células são objetos ativos. A tabela a seguir mostra os objetos ativos no MS Excel: cap_05.p65 16/6/2004, 17:3844 O editor do Visual Basic no Excel 45 Sub AlteraExibição() Início da macro (procedimento) With ActiveWindow Com a janela ativa .DisplayGridlines = False Não exibir linhas de grades .DisplayHeadings = False Não exibir cabeçalhos de linhas/colunas .Zoom = 75 Zoom de 75% End With Finaliza a janela ativa End Sub Finaliza a macro ActiveCellActiveCellActiveCellActiveCellActiveCell ActiveChartActiveChartActiveChartActiveChartActiveChart ActivActivActivActivActiveDialogeDialogeDialogeDialogeDialog ActivActivActivActivActiveXeXeXeXeX ActivActivActivActivActiveMeneMeneMeneMeneMenuBaruBaruBaruBaruBar ActivActivActivActivActivePePePePePanelanelanelanelanel ActivActivActivActivActivePrePrePrePrePrinterinterinterinterinter ActivActivActivActivActiveSheeteSheeteSheeteSheeteSheet ActivActivActivActivActiveWeWeWeWeWindoindoindoindoindowwwww ActivActivActivActivActiveWeWeWeWeWorororororkbookkbookkbookkbookkbook Experimente, por exemplo, digitar as seguintes instruções logo abaixo do código da sua macro: Sub AlteraExibição() With ActiveWindow .DisplayGridlines = False .DisplayHeadings = False .Zoom = 75 End With End Sub Para que a macro seja executada na janela de códigos, utilize o botão ou a tecla F5. Ao voltar para a planilha, você verá que a macro realizou as seguintes tarefas: Eventos da planilha Para alterar eventos de planilha, selecione uma das planilhas na janela PrPrPrPrProjetoojetoojetoojetoojeto e ative o objeto WWWWWorororororksheetksheetksheetksheetksheet, como mostra a figura: cap_05.p65 16/6/2004, 17:3845 46 Treinamento avançado em Excel Veja, na tabela a seguir, quais os principais eventos que podem ser associados a uma planilha: EventoEventoEventoEventoEvento Quando ocorreQuando ocorreQuando ocorreQuando ocorreQuando ocorre ActivActivActivActivActivateateateateate Quando uma planilha é ativada. BefBefBefBefBeforororororeDoubeDoubeDoubeDoubeDoubleClicleClicleClicleClicleClickkkkk Ao clicar duas vezes em uma planilha. BefBefBefBefBeforororororeRightCliceRightCliceRightCliceRightCliceRightClickkkkk Ao clicar com o botão direito do mouse sobre uma planilha. CalculateCalculateCalculateCalculateCalculate Depois de toda a planilha ser recalculada. ChangChangChangChangChangeeeee Quando as células das planilhas são alteradas pelo usuário. DeactivDeactivDeactivDeactivDeactivateateateateate Quando a planilha é desativada. SelectionChangSelectionChangSelectionChangSelectionChangSelectionChangeeeee Quando a seleção é alterada em uma planilha. cap_05.p65 16/6/2004, 17:3846 Exibindo mensagens ao usuário 47 Exibindo mensagens ao usuário As caixas de mensagem funcionam como a voz do programa, o meio de comunicação entre o aplicativo e a pessoa que o está utili- zando. São elas que avisam ao usuário quando acontece algum erro, permitem que ele escolha o que fazer a seguir, ou mesmo abrem espaço para que ele passe dados ao programa. O VBA oferece modelos prontos de caixa de mensagem; basta escolher o tipo adequado e configurá-lo. Com isso, você consegue facilmente guiar o usuário para que ele aproveite completamente o documento do Excel que você criou. Afinal de contas, quem não se comunica se estrumbica! • FUNÇÃO MSGBOX É possível criar macros que exibam mensagens na tela, para in- formar o usuário sobre alguma operação que tenha sido executada, alertá-lo sobre erros etc. Só que, diferentemente do que temos feito até agora, a mensagem em si não pode ser criada apenas ligando o gravador de macros. Ela deve ser inserida como parâmetro para a função MSGBOX, que tem a seguinte sintaxe: MSGBOX “Mensagem”, tipo da caixa, “Título” Em que: Mensagem Mensagem Mensagem Mensagem Mensagem – é a mensagem que deverá aparecer na caixa. O texto deve ser digitado entre aspas, com tamanho máximo de 1024 caracteres. Se você quiser que o texto apresentado seja o valor de uma variável, digite o nome da variável, sem aspas. TTTTTipo da caixa ipo da caixa ipo da caixa ipo da caixa ipo da caixa – define o tipo da caixa de diálogo (se será uma informação, um alerta de erro etc.). TítuloTítuloTítuloTítuloTítulo – Define o título da caixa de diálogo. cap_06.p65 16/6/2004, 17:3847 48 Treinamento avançado em Excel Para testar a exibição de mensagens com a função MSGBOX, crie, na janela do Editor do Visual Basic, uma macro com as se- guintes instruções: Sub TestaMensagem() MsgBox “Esta mensagem só contém o prompt” End Sub Execute a macro pressionando a tecla F5. Você verá esta caixa de mensagem: • OUTROS EXEMPLOS DE MENSAGEM Há vários tipos de caixa de mensagem. Vejamos agora um exem- plo contendo um botão de OKOKOKOKOK. Este é o código da caixa: Sub TestaMensagem2() MsgBox “Prompt - Texto da mensagem”, _ vbExclamation + vbOKOnly,”VBOK é o tipo _ de botão, e TITLE é o título” End Sub No código, repare no símbolo de underscore (_) no fim da segun- da linha. Ele é usado para quebras de linha. Quando uma linha de comando não couber na linha da tela, quebre-a com um underscore. Assim, mantém-se a continuidade do comando. O resultado do códi- go digitado é o seguinte: cap_06.p65 17/6/2004, 10:3948 Exibindo mensagens ao usuário 49 • CAPTURANDO RESPOSTAS DO USUÁRIO Na maioria das vezes, queremos que o usuário possa interagir com a caixa de mensagem, escolhendo clicar em um botão ou inse- rir algum dado. O VBA disponibiliza botões prontos para você in- cluir na sua caixa de mensagem. Cada um deles tem um número correspondente, bem como um código VBA. Veja quais são eles na tabela a seguir: BotãoBotãoBotãoBotãoBotão Número correspondenteNúmero correspondenteNúmero correspondenteNúmero correspondenteNúmero correspondente CódigCódigCódigCódigCódigo o o o o VBVBVBVBVBAAAAA OKOKOKOKOK 1 VbOk CancelarCancelarCancelarCancelarCancelar 2 VbCancel AnAnAnAnAnularularularularular 3 VbAbort RepetirRepetirRepetirRepetirRepetir 4 VbRetry IgnorIgnorIgnorIgnorIgnorararararar 5 VbIgnore SimSimSimSimSim 6 VbYes NãoNãoNãoNãoNão 7 VbNo O código a seguir gera uma caixa de mensagem com três bo- tões: AnAnAnAnAnularularularularular, RepetirRepetirRepetirRepetirRepetir e IgnorIgnorIgnorIgnorIgnorararararar: Sub TestaResposta () Resposta = MsgBox(“Pressione um dos _ botões abaixo:”, vbAbortRetryIgnore, _ “ATENÇÃO!!”) If Resposta = 3 Then MsgBox “Você pressionou ANULAR.” End If End Sub Nessa caixa de mensagem, o usuário deve clicar em um dos três botões: BotãoBotãoBotãoBotãoBotão Número correspondenteNúmero correspondenteNúmero correspondenteNúmero correspondenteNúmero correspondente CódigCódigCódigCódigCódigo o o o o VBVBVBVBVBAAAAA cap_06.p65 16/6/2004, 17:3849 50 Treinamento avançado em Excel O código do botão selecionado pelo usuário será armazenado em uma variável chamada Resposta. Se o usuário pressionar o botão AnAnAnAnAnularularularularular, o valor armazenado na variável será 3, e será gerada uma nova mensagem. Função INPUTBOX Um tipo de caixa de mensagem ainda mais interativo é aquele em que o usuário pode inserir dados. Para isso, você pode usar a função INPUTBOX. Vejamos um exemplo. O código Sub Entrada() Resp = InputBox(“Qual é a palavra-chave?”) Range(“A1”) = Resp End Sub , faz com que apareça a caixa de mensagem a seguir, em que o usu- ário deve inserir determinada palavra-chave: Nesteoutro exemplo, temos uma caixa de diálogo em que o usuário deve inserir um valor de salário: cap_06.p65 16/6/2004, 17:3850 Exibindo mensagens ao usuário 51 • ADICIONANDO COMENTÁRIOS AO CÓDIGO Comentários são trechos do código que não são executados, ser- vindo apenas para manter uma documentação sobre ele. Eles são muito úteis, inclusive para a própria pessoa que criou o código – por exemplo, se você tiver que atualizar o programa depois de muito tempo, vai ter condições de entender o que está expresso nele. Para fazer com que um trecho do código seja um comentário no VBA, basta colocar um apóstrofo (‘) no início da linha, como no exemplo a seguir: Sub Entrada() Resp = InputBox(“Qual é a palavra- ‘chave?”,”Senha”) ‘Armazena em Resp (variável) a resposta da ‘pergunta de INPUTBOX Range(“A2”) = Resp ‘Armazena na célula A1 a resposta existen ‘te na variável End Sub cap_06.p65 16/6/2004, 17:3851 52 Treinamento avançado em Excel Criando um formulário no VBA No dia-a-dia, não queremos nem ouvir falar em formulários: imedia- tamente nos vem à mente qualquer idéia relacionada com burocracia... Mas, na hora de criar interfaces de macros, inclusive no Excel, os formu- lários são essenciais. Eles funcionam, grosso modo, como caixas de men- sagem turbinadas – muito turbinadas. Com um formulário, você pode coletar dados do usuário, pedir que ele escolha entre opções pré-exis- tentes, entre muitas outras atividades interativas. E as informações reco- lhidas podem ser usadas para preencher uma planilha, por exemplo. Neste capítulo você vai aprender a criar e configurar formulários, bem como associar os campos e controles deles com planilhas. Tudo isso, claro, com os recursos do nosso velho conhecido VBA. • CRIANDO UM FORMULÁRIO No editor do Visual Basic do Excel, acesse o comando InserInserInserInserInseriririririr > UserFormUserFormUserFormUserFormUserForm. Você pode definir características como nome, cor, estilo de borda, fonte de textos, entre outras, para o seu formulário. Para facilitar essas configurações, ative a janela PropriedadesPropriedadesPropriedadesPropriedadesPropriedades com o comando ExibirExibirExibirExibirExibir > JJJJJanela anela anela anela anela ‘Pr‘Pr‘Pr‘Pr‘Propropropropropriedades’iedades’iedades’iedades’iedades’, ou usando a tecla F4. cap_07.p65 17/6/2004, 10:4052 Criando um formulário no VBA 53 Para que o usuário possa interagir com o formulário, você deve incluir controles nele – isto é, botões, caixas de textos etc. A maneira mais fácil de fazer isso é usar a opção ExibirExibirExibirExibirExibir > Caixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentas, na qual basta clicar sobre o controle desejado para que ele passe a fazer parte do formulário. A tabela a seguir apresenta os controles que podem ser incluídos no seu formulário: ControleControleControleControleControle NomeNomeNomeNomeNome UtilidadeUtilidadeUtilidadeUtilidadeUtilidade Selecionar objetosSelecionar objetosSelecionar objetosSelecionar objetosSelecionar objetos Permite selecionar um ou mais objetos dentro do formulário. RótuloRótuloRótuloRótuloRótulo Insere títulos e textos explicativos dentro do formulário. Caixa de textoCaixa de textoCaixa de textoCaixa de textoCaixa de texto Permite que o usuário insira da- dos em um campo. Caixa de combinaçãoCaixa de combinaçãoCaixa de combinaçãoCaixa de combinaçãoCaixa de combinação Utilizado para criar uma lista de dados, permitindo a escolha de um deles. • A BARRA DE FERRAMENTAS DE FORMULÁRIOS cap_07.p65 16/6/2004, 17:3753 54 Treinamento avançado em Excel Caixa de listagem Caixa de listagem Caixa de listagem Caixa de listagem Caixa de listagem Semelhante à caixa de combinação, mas com a diferença de que os dados são exibidos em mais de uma linha ao mesmo tempo. Caixa de seleção Caixa de seleção Caixa de seleção Caixa de seleção Caixa de seleção Utilizado para criar uma opção de seleção. Botão de opção Botão de opção Botão de opção Botão de opção Botão de opção Utilizado para criar um botão que seleciona uma determinada opção. Botão de ativação Botão de ativação Botão de ativação Botão de ativação Botão de ativação Utilizado para criar um botão que pode ser ativado ou não. Moldura Moldura Moldura Moldura Moldura Utilizado para criar uma moldu- ra em volta de um conjunto de controles, agrupando-os. Botão de comando Botão de comando Botão de comando Botão de comando Botão de comando Utilizado para criar um botão de comando, como OKOKOKOKOK, CancelarCancelarCancelarCancelarCancelar, SalvarSalvarSalvarSalvarSalvar etc. Faixa de tabulação Faixa de tabulação Faixa de tabulação Faixa de tabulação Faixa de tabulação Utilizado para apresentar um conjunto de informações em fai- xas separadas. Multipágina Multipágina Multipágina Multipágina Multipágina Utilizado para apresentar várias guias de dados, cada uma com informações diferentes. Você pode, por exemplo, visualizar os dados pessoais de um cliente em uma guia, e os dados comerciais em outra. Barra de rolagem Barra de rolagem Barra de rolagem Barra de rolagem Barra de rolagem Utilizado para criar uma barra de rolagem no sentido horizon- tal ou vertical. Barra de rotação Barra de rotação Barra de rotação Barra de rotação Barra de rotação Utilizado para incrementar valo- res em controles de textos (como número de prestações, % de juros etc.). Imagem Imagem Imagem Imagem Imagem Utilizado para inserir imagens no formulário. São aceitos formatos como .jpg, .bmp, .ico, entre outros. RefEdit RefEdit RefEdit RefEdit RefEdit Utilizado para exibir o endereço de um intervalo de células inserido ou selecionado em planilhas. cap_07.p65 16/6/2004, 17:3754 Criando um formulário no VBA 55 • INSERINDO UM CONTROLE Agora que você já conhece os controles que podem ser inseridos em um formulário, veja como incluí-los: Na Caixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentas, dê um clique sobre o controle desejado. Na janela UserFormUserFormUserFormUserFormUserForm, posicione o cursor sobre o ponto em que deseja inseri-lo. Clique e arraste o mouse sobre a tela para desenhar o controle. Criando um formulário simples A Caixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentasCaixa de ferramentas facilita muito o trabalho de inserção de controles. Que tal colocar a mão na massa e partir para a criação de um formulário simples? Tente criar um modelo como o apresentado na figura a seguir: 1 2 3 Depois de construir o formulário, guarde-o. Vamos voltar a usá-lo mais adiante. cap_07.p65 16/6/2004, 17:3755 56 Treinamento avançado em Excel • ALTERANDO O NOME DOS CONTROLES Para capturar os dados que o usuário inserir nos controles do seu formulário, é necessário nomear os controles. Do contrário, não será pos- sível referir-se a eles mais tarde. O nome de um controle é definido por sua propriedade NameNameNameNameName, como descrito nos passos a seguir: Na janela UserFormUserFormUserFormUserFormUserForm, dê um clique sobre o controle desejado. Na janela PropriedadesPropriedadesPropriedadesPropriedadesPropriedades, dê um clique sobre a propriedade NameNameNameNameName. Digite o nome que você quer dar ao controle. Uma dica: para facilitar a identificação dos controles, é interessante padronizar a nomenclatura. Um padrão muito utilizado é o de iniciar o nome com três letras indicando qual o tipo de controle criado. Por exem- plo, lblVeículo: nesse caso, as letras “lbl” indicam que o controle é do tipo rótulo (em inglês, label); e o nome específico desse controle do tipo rótu- lo está expresso logo em seguida (Veículo). A propriedadeCaption Certos controles, como rótulo, botão de opção, caixa de texto, mol- dura e botão de comando, possuem a propriedade CaptionCaptionCaptionCaptionCaption, a qual permite acrescentar um texto de apresentação do controle. Suponha que você tenha uma caixa de texto na qual o usuário deva digitar o nome dele. Para que ele saiba o que deve fazer, é necessário que exista um texto explicativo, como “Digite aqui o seu nome”. Esse texto é defini- do na propriedade CaptionCaptionCaptionCaptionCaption. • ALTERANDO OS CONTROLES DO FORMULÁRIO Agora chegou a hora de retomar o formulário que você criou há pouco. Você vai definir os nomes e os captions de alguns controles, seguindo a orientação da tabela a seguir: 1 2 3 cap_07.p65 16/6/2004, 17:3756 Criando um formulário no VBA 57 ObjetoObjetoObjetoObjetoObjeto NameNameNameNameName CaptionCaptionCaptionCaptionCaption label1label1label1label1label1 lblNome Nome: TTTTTeeeeextboxtboxtboxtboxtbox1x1x1x1x1 txtNome Commandbutton1Commandbutton1Commandbutton1Commandbutton1Commandbutton1 cmdOk OK Commandbutton2Commandbutton2Commandbutton2Commandbutton2Commandbutton2 cmdCancelar Cancelar Label2Label2Label2Label2Label2 lblVeículo Veículo: ListBox1ListBox1ListBox1ListBox1ListBox1 ltbVeículo Frame1Frame1Frame1Frame1Frame1 frmPagamento Opções de pagamento OptionButton1OptionButton1OptionButton1OptionButton1OptionButton1 optVista À vista OptionButton2OptionButton2OptionButton2OptionButton2OptionButton2 optParcelado Financiado label3label3label3label3label3 lblParcelas Nº de parcelas TTTTTeeeeextBoxtBoxtBoxtBoxtBox2x2x2x2x2 txtParcelas SpinButton1SpinButton1SpinButton1SpinButton1SpinButton1 spiParcelas Label5Label5Label5Label5Label5 Preço: CheckBox1CheckBox1CheckBox1CheckBox1CheckBox1 chkNovo Cliente novo Label4Label4Label4Label4Label4 LBLPreço [em branco] Inserindo uma imagem Como fazer para incluir uma imagem em seu formulário? É simples. Você já sabe que o controle correspondente é o ImaImaImaImaImagggggememememem. Aproveite o passo-a-passo a seguir para definir a imagem que deve ser associada ao controle ImagemImagemImagemImagemImagem que você já inseriu no seu formulário: No formulário que você criou, dê um clique sobre o controle de imagem. 1 cap_07.p65 16/6/2004, 17:3757 58 Treinamento avançado em Excel Na janela PropriedadesPropriedadesPropriedadesPropriedadesPropriedades, vá até a propriedade PicturePicturePicturePicturePicture e clique no botão com as reticências. Será aberta uma janela de navegador, para que você escolha a ima- gem a ser inserida. Procure o arquivo de imagem desejado e dê um duplo clique sobre ele. Para que a figura não apareça cortada, altere a propriedade PicturPicturPicturPicturPictureSizeModeeSizeModeeSizeModeeSizeModeeSizeMode. Assim, a figura vai se adaptar ao tamanho da caixa. 4 Propriedades de texto Depois de alterar as propriedades NameNameNameNameName e CaptionCaptionCaptionCaptionCaption dos controles, o seu formulário terá esta aparência (exceto pela figura, que será aquela que você tiver selecionado): 2 3 Agora, você deve definir uma propriedade para o objeto do tipo caixa de texto txtNome. Para permitir que o nome do cliente seja digitado em mais de uma linha, defina a propriedade MultiLineMultiLineMultiLineMultiLineMultiLine como TTTTTrrrrrueueueueue. Para isso, basta dar um clique sobre o controle txtNome no seu formulário e alterar a propriedade desejada na janela PropriedadesPropriedadesPropriedadesPropriedadesPropriedades. Alterando a ordem dos controles Com o formulário já construído, você pode navegar pelos controles existentes usando a tecla Tab. Com ela, os objetos são selecionados de acordo com a ordem em que foram criados. Mas é possível alterar essa ordem, para, por exemplo, torná-la compatível com a das colunas de uma planilha. Para isso, vá ao menu ExibirExibirExibirExibirExibir > Ordem de tabulaçãoOrdem de tabulaçãoOrdem de tabulaçãoOrdem de tabulaçãoOrdem de tabulação. Preparando o ambiente dos dadosPreparando o ambiente dos dados Na janela que aparece, clique sobre o controle que deseja mudar de posição e, depois, sobre os botões Mover para cimaMover para cimaMover para cimaMover para cimaMover para cima ou MoverMoverMoverMoverMover para baixopara baixopara baixopara baixopara baixo. cap_07.p65 16/6/2004, 17:3758 Criando um formulário no VBA 59 Associando a tabela de veículos com o controle No Editor do Visual Basic, selecione o objeto lbtVeículos. 1 2 1 Preparando a tabela com os dados dos veículos Em Plan2 devemos digitar a tabela com os veículos que temos na revendedora: 1 Nosso intuito é relacionar o formulário que criamos com planilhas do Excel. Só para ter uma idéia de como ele vai ficar sobre a planilha, clique sobre o botão . Depois, feche o formulário sobre a planilha para retornar ao edi- tor do VBA. Na planilha, vamos preparar o ambiente em que os dados se- rão recebidos. Construa a seguinte planilha: 2 Nomeie a planilha como Cadastro. Renomeie a planilha como Veículos. Selecione o intervalo A2:C19 e nomeie-o como VEÍCULOS. cap_07.p65 16/6/2004, 17:3759 60 Treinamento avançado em Excel 2 3 4 5 Esse controle deverá apresentar a tabela de produtos que está na planilha Veículos. Defina a propriedade RoRoRoRoRowSourwSourwSourwSourwSourcecececece como Veículos (nome da área nomeada). Para que sejam apresentadas as duas colunas com o modelo e o ano do veículo, altere a propriedade ColumnCountColumnCountColumnCountColumnCountColumnCount para 2. Para exibir os títulos altere a propriedade ColumnHeadsColumnHeadsColumnHeadsColumnHeadsColumnHeads para True. Exibindo o formulário Agora que já fizemos a associação entre o formulário e a planilha, vamos fazer com que a planilha adequada seja selecionada, e o formulá- rio, exibido. Isso será feito digitando-se algumas linhas de código no editor do VBA: Na janela Projeto, ative a janela de código com este botão: Digite o seguinte código: Sub Cadastro() Sheets(“Cadastro”).Select ‘Selecionar a planilha Cadastro. frmVeículos.Show ‘Exibir o formulário com os veículos. End Sub Esse código vai posicionar o cursor sobre a planilha Cadastro (Plan1) e abrir o formulário frmVeículos. Execute a macro para ver o formulário no centro da tela. 1 2 3 4 cap_07.p65 16/6/2004, 17:3760 Criando um formulário no VBA 61 Range(“c” & Me.ltbVeículos.ListIndex + _ 2).Value ‘Acesse a coluna C da planilha Veículos, ‘adicionando 2 ao índice, pois o índice inicial ‘é zero. Coluna A + 2 = C. ‘Exibe o valor do veículo. End Sub Descarregando o formulário da memória Quando o usuário clicar sobre o botão CancelarCancelarCancelarCancelarCancelar, o formulário deve- rá ser removido da memória, ou, em outras palavras, descarregado. Para que isso aconteça, você deve associar um código a esse botão. Dê um clique duplo sobre ele para abrir a janela de código. Nela, digite: Private Sub cmdCancelar_Click() ‘Quando o botão Cancelar for pressionado, ‘o formulário deverá ser descarregado. Unload Me ‘Descarrega o objeto atual (Me). End Sub Você deve ter reparado que não associamos comandos a todos os controles do formulário. Isso porque controles como o botão de OKOKOKOKOK, por exemplo, exigem alguns conhecimentos que serão apresentados nos próximos capítulos. Mas não desanime! Ao terminar o livro, você terá um formulário totalmente funcional, e, o melhor, inteiramente feito por você. • EXIBINDO O PREÇO DO VEÍCULO No formulário frmVeículos existe um controle com o nome lblPreço. Ele vai servir para exibir o preço de determinado automóvel quando o usuário selecioná-lo a partir da lista de veículos. Portanto, vamos adicionar código ao controle ltbVeículo. Dê um duplo clique no controle ltbVeículo, para ir à janela
Compartilhar