Professional Documents
Culture Documents
Relacional Consultoria Ltda Rua da Candelria, 60 7 andar Tel: (0xx21) 219-5161 Fax: (0xx21) 219-5155 e-mail: claudiad@relacional.com.br
NDICE
INTRODUO .......................................................................................................................................................1
CRIANDO MACROS
Sintaxe de comandos......................................................................................................................................6 INSERINDO OBJETOS EM UM PLANILHA ....................................................................................................................8 CRIANDO MENUS PERSONALIZADOS ........................................................................................................................9 EXERCCIOS DE MACRO ...................................................................................................................................10 CRIANDO MDULOS..........................................................................................................................................11 PROGRAMANDO MDULOS ..................................................................................................................................11 EXERCCIO DE MDULO...................................................................................................................................12 TABELA DINMICA ............................................................................................................................................13 MENU TABELA DINMICA ......................................................................................................................................17
ALTERANDO UMA TABELA DINMICA.......................................................................................................................20
INTRODUO
O Excel 97 possui uma Linguagem de programao chamada de Visual Basic para Aplicaes (VBA). Com ela voc poder automatizar seus trabalhos e ganhar rendimento os recursos existentes em suas planilhas. No Excel podemos tambm automatizar tarefa repetidas. A este recurso chamamos de Macros. As macros so rotinas que utilizam o Visual Basic e que podem ser criadas sem o conhecimento de programao mas, utilizam lgica. Alm disso um dos melhores, talvez o melhor, recurso que o MS-Excel apresenta para os seus usurios a Tabela Dinmica, que permite a apresentao dos dados de diversas formas, a partir de uma mesma base de informao. Uma Tabela Dinmica (ou Pivot Table Report na verso do MS-Excel 97 em ingls), uma tabela interativa de planilha, utilizada para resumir e analisar dados de uma lista ou tabela j existente. Colunas ou linhas de sumarizao ou dados, podem ser invertidos, automaticamente, pelo usurio, criando novas verses de relatrio em frao de segundo. Um exemplo prtico deste tipo de funcionalidade estruturar um relatrio de vendas por Vendedor e por Produto. Caso queira visualizar os dados por Produto e por Vendedor (ou Cliente), ser necessrio a elaborao de um outro relatrio, cdigo adicional, etc. Com a Tabela Dinmica do MS-Excel basta inverter, com o auxilio do mouse, a posio destas duas colunas, e pronto, o resultado est disponvel para consulta.
APOEXCEL_AVANC
CRIANDO MACROS
A partir de agora iremos demonstrar como funciona o gravador de macro de Excel. Se voc j utilizou o gravador de macro do Word, por exemplo, ver que este no muito diferente. Para iniciar a gravao o usurio aciona o gravador e, em seguida, executa as tarefas na planilha. Neste momento o gravador estar gravando todas as aes executadas na planilha(Click de mouse, digitao etc), certas ou erradas e, depois, finalizar o gravador. Ao trmino deste processo, foi criada uma Macro(Mdulo) que, contm uma srie de linhas de comandos(Cdigos, Instrues) sobre as aes executadas.
INICIANDO UMA MACRO Voc pode criar uma macro sempre que voc achar que uma determinada tarefa muito repetitiva. Com isso, utilizando a execuo de uma macro, esta tarefa que possui uma srie de passos executada automaticamente. Exemplo: A planilha abaixo tem o objetivo de calcular a projeo mensal de gastos atravs da Receita do ms anterior e o % de Crescimento
EMPRESA BRASILEIRA DE SERVI OS S.
Taxas Receita % Crescimento Despesas Gerais Materiais Sal rios Benefcios Adicionais Outros
8% 5% 3% 7%
% Crescimento Ms:
20%
Taxas dever estar na clula A4 Frmulas: Clula Frmula D5 C5*(1+D6) C9 C5*$A$9 C10 C5*$A$10 C11 C10*$A$11 C12 C5*$A$12
APOEXCEL_AVANC
Iremos agora automatizar esta planilha criando a macro. Abaixo a sequncia dos passos a serem seguidos. 1. Ative o gravador de Macros da Barra de Menu Ferramentas, Macro, Gravar nova Macro...;
2. Digite Crescimento na Caixa Texto Nome da Macro. O nome no poder possuir espaos em branco; 3. Digite m na Caixa Texto Tecla de Atalho; 4. Pressione OK. A partir de agora suas aes estaro sendo gravadas; 5. Selecione a regio da planilha D4:D12; 6. Utilize o Comando Editar; Copiar; 7. Selecione a clula C4; 8. Utilize o Comando Editar, Colar Especial, Valores; 9. Selecione a regio E4:E12; 10. Utilize o Comando Editar; Copiar; 11. Selecione a clula D4 e pressione <Enter>; 12. Selecione a regio da planilha E4:E12 e pressione <Enter>; 13. Selecione a regio D4:E12; 14. Utilize o Comando Editar, Preencher, Sequncia; 15. Selecione AutoPreenchimento; 16. Selecione a clula C16; 17. Selecione a clula E6 e pressione <Enter>; 18. Selecione a clula C16 e pressione a tecla DEL; 19. Termine a gravao da macro pressionando no Parar Macro.
EXECUTANDO MACRO
Existem vrias maneiras de executar uma macro. Uma delas atravs da Barra de Menu, Ferramentas, Macro. Outra opo utilizar as teclas de atalho Alt F8.
APOEXCEL_AVANC
Para executarmos a Macro criada seguiremos os seguintes passos: 1. Selecione na planilha a clula C16 e entre com o valor de 10%; 2. Selecione na Barra de Menu o comando Ferramentas, Macro, Macros...; Ser exibida a tela abaixo:
Perceba que a macro executa todas as tarefas gravadas anteriormente. Desta forma, toda vez que o usurio desta planilha tiver que verificar o crescimento do prximo ms, basta apenas digitar o valor de Crescimento e executar a macro.
APOEXCEL_AVANC
Frmula
Height
retornar
APOEXCEL_AVANC
SINTAXE DE COMANDOS Quando nos referimos a uma propriedade, o objeto cuja propriedade desejamos definir ou retornar valor vm na frente do comando, seguido de um ponto e, depois, do nome da propriedade. Exemplos: Cell.Columns.Heighs = 16 MsgBox(Mensagem a ser Exibida, Tipo) O objeto separado da propriedade por um ponto. Ao utilizar propriedade no Visual Basic, voc realiza uma das seguintes aes. Definir o valor de um propriedade Objeto.Propriedade = expresso Retornar o valor de uma propriedade Varivel = objeto.propriedade
importante sabermos a diferena entre propriedades de um objeto e o mtodo de um objeto. A diferena que as propriedades possuem valores que so definidos ou retornados, enquanto os mtodos so aes que voc deseja que um objeto execute. Alm disso, a maioria das propriedades recebe um nico valor, enquanto os mtodos podem receber um ou mais argumentos.
Vamos ver agora como identificamos e criamos uma varivel. A Instruo Dim declara(cria) uma varivel no Visual Basic Exemplo: Dim NOME DA VARIVEL as TIPO DA VARIVEL Abaixo alguns dos Tipos que as variveis podem ser: Tipo Boolean Byte Currency Date Double Integer Long String Tamanho(Memria utilizada) 2 Bytes 1 Byte 8 Bytes 8 Bytes 8 Bytes (ponto flutuante, dupla preciso) 2 Bytes 4 Bytes 1 Byte(por caracter)
APOEXCEL_AVANC
NOTA: importante de, sempre que criarmos uma varivel ou uma funcionalidade(regra de negcio) descrever um comentrio ou uma observao para que, no caia no esquecimento e facilite a qualquer pessoa que for efetuar alteraes ou melhorias na Aplicao. Para inserir uma ou mais linhas de comentrio em uma programao no Visual Basic devemos iniciar a linha com o caracter PLIC Exemplo: Sub Exemplo() ' ' Exemplo Macro ' Macro gravada em 25/01/2001 por Relacional Consultaria Ltda ' Esta rotina copia e cola uma rea selecionada na Planilha Vendas, Pasta Executa Macro If C4 > 100 then Range("C8:D15").Select Selection.Copy Range("G8:H15").Select ActiveSheet.Paste Range("J8").Select ActiveSheet.Paste Application.CutCopyMode = False Endif End Sub
Desta forma, o Visual Basic, ir ignorar as linha que iniciam com o caracter PLIC( ) executando somente as demais linhas
APOEXCEL_AVANC
A figura abaixo lista alguns dos Objetos que podem ser criados no Excel e so exibidos na Barra de Ferramentas:
Modo Estrutura Exibir Cdigo Caixa de Seleo Boto Caixa de Listagem Boto Alternar Barra de Rolagem Imagem Mais Controles
Propriedades
APOEXCEL_AVANC
Iremos ento realizar os seguintes passos: 1. Selecione na Barra de Menu, Exibir, Barra de Ferramentas, Personalizar...; 2. Na Pasta Barra de Ferramentas pressione o boto Novo; 3. Na Caixa Texto Nova Barra digite: Emisso de 2 Via. Pressione OK. Ir aparecer na Tela uma pequena Barra de Ferramentas com o novo nome; 4. Pressione na Pasta Comandos. Na Caixa de Listagem Categorias, selecione o item Novo Menu; 5. Na Caixa de Listagem Comandos, pressione o mouse sobre o item Novo Menu e arraste para dentro do novo Menu criado. 6. Altere a opo do Menu Novo Menu para Cadastro. Para isso, pressione o boto direito do mouse sobre a opo e no item Nome digite: Ca&dastro. O caracter & uma instruo do VB e indica a Tecla de Atalho que ser utilizada. 7. Na Caixa de Listagem Categorias, selecione o item Macros; 8. Na Caixa de Listagem Comandos, Pressione sobre o item Personalizar item de Menu e arraste para baixo da opo Cadastro na nova Barra de Menu; 9. Pressione com o boto direito do mouse sobre o sub-item de Cadastro entitulado Personalizar item de Menu e, altere o nome para A<erao; 10. Repita os itens 8 e 9 para os sub-itens Excluso e Incluso.
APOEXCEL_AVANC
EXERCCIOS DE MACRO
1. Crie uma macro obedecendo o seguinte pseudo-cdigo abaixo: Incio Funo Se mensagem Sair do Sistema GRAVANDO as alteraes igual a foco em Menu ento Salve a Planilha Feche a aplicao Fim se Fim Funo
2. Crie uma macro obedecendo o seguinte pseudo-cdigo abaixo: Incio Funo Se mensagem Sair do Sistema ABANDONANDO as Alteraes igual a foco em Menu ento No exibe mensagem de confirmao de gravao Feche aplicao Fim Se Fim Funo
3. Crie uma Barra de Menu como no exemplo abaixo: Cadastro Alterao Consulta Excluso Incluso Impresso Relatrio Cancelar Sair
Associe a Macro do Exerccio 1 ao item de Menu Sair. Associe a Macro do Exerccio 2 ao item de Menu Cancelar.
4. Baseado na planilha Aprovao crie: - Uma Macro que coloque em vermelho as palavras REPROVADO; - Crie um boto entitulado final que execute a Macro criada.
APOEXCEL_AVANC
10
CRIANDO MDULOS
Semelhante Macro, o recurso de Mdulo possui as mesmas funcionalidade de e recursos de uma programao de Macros. Ento, a diferena bsica por conta do modo de execuo. A Macro executamos pela Barra de Menus ou, ento, associando-a a um Boto de Controle que inserimos em uma Planilha. O Mdulo executamos atravs da prpria clula do Excel e, se desejarmos, poderemos executar passo-a-passo as linhas programadas do cdigo para identificarmos um eventual erro, ou ento, verificar se as variveis criadas esto armazenando os valores corretos.
PROGRAMANDO MDULOS
Iremos agora criar um Mdulo que Calcula os dias teis trabalhos para efeito de Horas Extras. 1. Na Barra de Menu Ferramentas, Macro, Editor Visual Basic; 2. No modo programvel do VB, selecione na Barra de Menu Inserir, Mdulo; 3. Na janela de Mdulo digite o cdigo conforme figura abaixo:
4. Utilizando a Planilha Dias teis, digite na clula H7 a funo como frmula digitando as colunas de Dia Incio e Dia Fim para ver o resultado.
APOEXCEL_AVANC
11
EXERCCIO DE MDULO
1. Baseado na figura abaixo crie um mdulo que calcule o percentual de gastos em uma administrao residencial. A base de clculo ser o salrio.
2. Inclua uma coluna ao lado de percentual e utilize como base de clculo o Total Geral.
APOEXCEL_AVANC
12
TABELA DINMICA
Na introduo vimos as vantagens de utilizar uma Tabela Dinmica. Com interatividade podemos resolver problemas utilizando o Assistente numa sequncia de 04 (quatro) caixas de dilogo interativas que nos guia pelas etapas de localizao e recuperao dos dados que desejamos analisar. O Assistente de Tabela Dinmica tambm permite que possamos definir como desejamos organizar uma Tabela Dinmica utilizando rtulos de linha e de coluna, e como desejamos apresentar os dados nos campos. Podemos criar uma Tabela Dinmica a partir de dados fonte que residam em: Uma lista ou um banco de dados do MS-Excel. Um banco de dados externo, como uma tabela ou arquivo criado em um aplicativo, ou sistema de gerenciamento de banco de dados externo ao MS-Excel, como por exemplo, MS-SQL Server, MS-Access, Oracle, Sybase etc. Vrios intervalos de consolidao de dados em planilhas do MS-Excel. Outra Tabela Dinmica na mesma pasta de trabalho. Uma vez criada a Tabela Dinmica, voc pode organizar, reorganizar e analisar os dados arrastando e soltando os campos na Tabela Dinmica. Tambm possvel incluir subtotais, modificar a funo de resumo de um campo, alterando a funo de soma pela mdia, valor mximo, mnimo, ou selecionar clculos personalizados para a Tabela Dinmica. Observao: Se voc deseja criar uma Tabela Dinmica utilizando dados externos, utilize o Microsoft Query e os controladores da conectividade de banco de dados (ODBC - Open Database Connectivity) adequados e defina as fontes de dados que deseja utilizar. Neste artigo estaremos apresentando uma conexo com uma base de dados em MS-Access.
A partir de agora iremos iniciar a confeco de uma Tabela Dinmica. 1. Abra uma planilha nova no Excel; 2. Digite os dados da planilha conforme figura abaixo:
APOEXCEL_AVANC
13
3. Selecione a rea de toda a planilha; 4. Selecione na Barra de Menu, Dados, Relatrio da Tabela Dinmica... . Ser exibida a Tela Abaixo;
5. Iremos selecionar a opo Banco de dados ou Lista do Excel. Pressionar em Avanar; 6. Ser exibida a Tela de confirmao de rea selecionada conforme figura abaixo. Se necessrio poderemos alterar a seleo. Em Intervalo digite o nome da Planilha e/ou intervalo de clulas ou selecione o intervalo na Planilha. Se a tabela de origem estiver em outra Pasta de trabalho, digite o nome da Pasta de Trabalho usando a seguinte sintaxe: [Pasta de Trabalho]nome da planilha!intervalo Se voc selecionar uma clula na tabela antes de iniciar o comando Relatrio da tabela dinmica, o MS-Excel inserir o intervalo automaticamente. No boto Procurar, o MS-Excel exibe a caixa de dilogo Procurar para que voc possa selecionar a Pasta de Trabalho que contm a tabela desejada.
APOEXCEL_AVANC
14
7. Ser exibida a Tela abaixo onde iremos montar o Lay-out do Relatrio da Tabela Dinmica atravs da movimentao dos Campos listados para a rea da Tabela;
A seleo dos campos listados direita da caixa de dilogo de grande importncia para que a Tabela Dinmica exiba os dados de forma coerente. A figura na caixa de dilogo representa a rea dinmica, com sees para os campos de Linha, campos de Coluna e campos de Pgina assim como uma rea de dados para os dados resumidos Dados. Na parte superior da caixa de dilogo temos um pequeno descritivo do significado de cada rea da Tabela Dinmica. Portanto, sempre que for montar o Lay-out de uma Tabela tenha a preocupao de selecionar os campos corretamente assim como de j Ter uma idia prvia de como deseja a exibio dos dados.
NOTA: Quando voc selecionar a opo Vrios intervalos de consolidao na primeira etapa, os nomes de campo apresentados nesta etapa sero genricos.
APOEXCEL_AVANC
15
8. Arraste os campos relacionados no lado direito da tela para as posies indicadas conforme a Figura abaixo. Deste modo teremos criada a estrutura de Tabela Dinmica. Feito isso pressione o boto Avanar;
9. A gerao da Tabela Dinmica poder ser feita na mesma planilha que a origem de dados ou, ento, ser gerada em nova planilha conforme Tela abaixo. Iremos selecionar a opo Nova Planilha na Caixa de Dilogo e pressionar o boto Concluir.
APOEXCEL_AVANC
16
10. Definidos os padres solicitados na tela anterior e pressionar o boto Concluir voc ver o resultado apresentado como na figura abaixo:
Voc poder redefinir a distribuio dos campos pela Tabela Dinmica simplesmente arrastando o boto cinza indicativo do campo para o local desejado, invertendo posies de botes de campo de coluna com linha ou ento de pgina. Deste modo podemos obter resultados diferentes com a mesma Tabela Dinmica. A posio padro de apresentao das informaes dos campos de Dados da Tabela Dinmica na posio vertical, ou seja, um abaixo do outro.
APOEXCEL_AVANC
17
Campo da Tabela Dinmica: Define as funes de resumo usadas para calcular os valores no campo de dados selecionado. Voc tambm pode criar um clculo personalizado, ou alterar o nome do campo de dados. Insere um subtotal para um campo de linha ou um campo de coluna em uma Tabela dinmica existente. Voc tambm pode ocultar itens para que eles no sejam exibidos na Tabela dinmica, renomear o campo, ou alterar a orientao do campo (de linha para coluna, por exemplo).
Mostrar pginas: Copia cada pgina de um campo de pgina para uma nova planilha da pasta de trabalho atual. Voc pode ento passar para uma planilha diferente para imprimir ou para aprofundar a anlise dos dados.
Desagrupar: Separa um conjunto de itens agrupados. Cada ocorrncia do grupo ser substituda pelos itens nele contidos.
Agrupar: Agrupa itens em uma Tabela dinmica por categoria para criar um item nico a partir de mltiplos itens. Este recurso poder ser til, por exemplo, quando voc quiser agrupar meses em trimestres para fins de anlise, elaborao de grficos ou impresso.
Ocultar detalhe: Oculta os dados de detalhe retraindo um item externo de um campo de linha ou de coluna em uma Tabela dinmica. Este recurso poder ser til quando voc quiser isolar segmentos de dados para anlise, impresso ou elaborao de grficos.
Mostrar detalhe: Exibe os dados de detalhe que foram ocultados com o subcomando Ocultar detalhe, expandindo um campo de linha ou um campo de coluna em uma Tabela dinmica. Este comando equivalente a um clique duplo sobre um item cujo detalhe foi ocultado.
APOEXCEL_AVANC
18
Atualizar dados: Atualiza os dados de uma Tabela dinmica depois que os dados fonte forem alterados. O MS-Excel extrai o intervalo de dados fonte especificado originalmente e depois substitui os dados da Tabela dinmica. Use este comando se os dados na tabela ou no arquivo de banco de dados de origem forem alterados e voc quiser refletir as alteraes no conjunto de resultados atual.
APOEXCEL_AVANC
19
Estando o Menu de Tabela Dinmica visvel, iremos pressionar sobre a ferramenta Assistente de Tabela Dinmica.
Assistente
APOEXCEL_AVANC
20
Aps isso ser exibida a Tela de Lay-out da Tabela Dinmica conforme figura abaixo:
Nossa modificao consistir em colocar o Campo Nome do Produto no LayOut da Tabela Dinmica na rea de Linha conforme figura abaixo:
APOEXCEL_AVANC
21
Efetivada a alterao na Tabela pressione o Boto Avanar. A Tabela Dinmica passar a Ter a nova visualizao conforme figura abaixo:
Podemos reparar que agora a visualizao da Tabela ficou mais completa pois, inclumos o Campo Nome do Produto. Alm disso, a Tabela apresenta quebra por Nome do Cliente, facilitando a visualizao de todos os pedidos feitos.
APOEXCEL_AVANC
22
2. Baseado na Planilha montada do exemplo anterior, crie uma Tabela Dinmica com Caixa de Listagem dos Campos Data e Vendedor. Faa uma seleo de leitura por Colunas e perceba o novo Lay-Out aplicado.
3. Baseado na Planilha Tabela_Access monte uma Tabela Dinmica que liste todas as ocorrncias Motivo com quebra por Nmero de Loja. A Tabela dever fazer o somatrio de ocorrncias por Loja.
APOEXCEL_AVANC
23
APNDICE
Com o objetivo de facilitar o entendimento de programar em Visual Basic, abaixo visualizamos a sintaxe de alguns comandos:
PROGRAMANDO TECLAS Tecla BACKSPACE BREAK CAPS LOCK CLEAR DELETE ou DEL SETA PARA BAIXO END ENTER(Teclado numrico) ENTER ESC HOME INSERT SETA PARA A ESQUERDA NUM LOCK PAGE DOWN PAGE UP SETA PARA A DIREITA TAB SETA PARA CIMA Cdigo {BACKSPACE} ou {BS} {BREAK} {CAPSLOCK} {LIMPAR} {DELETE} ou {DEL} {DOWN} {END} {ENTER} ~ {ESCAPE} ou {ESC} {HOME} {INSERT} {LEFT} {NUMLOCK} {PGDN} {PGUP} {RIGHT} {TAB} {UP}
LOOPS E CONDIES Exemplo de Sintaxe para Loop: Do While Condio Comandos Loop Do Loop Condio Comandos While Do Until Condio Comandos Loop
APOEXCEL_AVANC
24
Exemplo de Sintaxe Condicional: If Condio Then Comando End If If Condio Then Comando ElseIf Condio Then Comando End If
APOEXCEL_AVANC