Tabela Dinâmica: Como fazer agrupamentos diferentes

Algumas vezes precisamos criar mais de uma tabela dinâmica no mesmo arquivo do Excel com os mesmos dados, porém com agrupamentos diferentes. Em uma tabela dinâmica podemos precisar observar os resultados agrupados mensalmente, enquanto em outra tabela dinâmica podemos observar os dados agrupados diariamente. Vamos analisar essa situação através de um exemplo.
Na figura a seguir temos uma relação de pagamentos efetuados por clientes com as datas e os valores das compras.
td1
Vamos inserir uma tabela dinâmica, onde na área de linha colocaremos as datas das compras e na área de dados os valores, observe que criamos a tabela dinâmica na planilha TD1.
td2
Agora vamos criar outra tabela dinâmica, com os mesmos campos da anterior, mas agrupadas por trimestres e inserida na planilha TD2:
td3
Até aqui parece que está tudo bem, entretanto se voltarmos para a planilha TD1 perceberemos que ela também foi agrupada em trimestres:
td4
Este é o problema, quando se agrupa uma tabela dinâmica, a outra recebe o mesmo agrupamento. Como fazer para termos dois agrupamentos diferentes no mesmo arquivo?
Há mais de uma maneira de se resolver essa situação. Apresentaremos aquela que consideramos a mais flexível. A ideia é nomear o intervalo de dados e relacionar as tabelas dinâmicas com esses novos nomes.
1. Selecione todo o intervalo de dados usado para elaborar a tabela dinâmica. Nomeie esse intervalo, por exemplo Dados1.
td5
2. Mantenha a seleção e nomeie o mesmo intervalo com outro nome, por exemplo Dados2.
td6

3. Vá até uma das tabelas dinâmicas e escolha a opção para alterar a fonte de dados.
td7

4. Digite um dos nomes criados anteriormente, por exemplo Dados1 e pressione OK.
td8

5. Faça o mesmo com a outra tabela dinâmica, só que use o outro nome para o intervalo de dados (Dados2).
6. Agora experimente alterar os agrupamentos e você verá que eles são independentes.

RECURSO PARA ALAVANCAR A PRODUTIVIDADE E A LUCRATIVIDADE NAS ORGANIZAÇÕES

No atual mundo globalizado em que as pessoas estão interconectadas através da internet, celulares e outras mídias eletrônicas, cada vez mais os consumidores exigem produtos e serviços com qualidade, menor prazo de entrega e com preços competitivos. O acesso às informações permite à grande parte da população selecionar o que vai consumir e até ditar tendências de produtos, e quando se fala em uma economia globalizada, amplia-se a dimensão da informação, pela concretização dos negócios através das cadeias de suprimento, processos, logística de distribuição e novas formas de comunicação. Esse fenômeno sócio-econômico contribui para acelerar o ritmo das mudanças, pois as pessoas e empresas comparam tudo o que consomem, fomentando, indiretamente, o aumento da competição entre os fornecedores de produtos e serviços.

Neste cenário, uma organização que pretende ter sucesso precisa ter elevada produtividade, criatividade, organização e processos qualificados. Precisa ser suficientemente flexível para se adaptar às mudanças, estar atualizada e capacitada em tecnologia da informação (tecnologia da informação), ter elevada produtividade na gestão do tempo, manter um canal eficaz e eficiente de comunicação com os stakeholders, o que requer equipe suficientemente treinada para ser altamente produtiva, porque o mercado não tem vocação para pagar incompetência ou ineficiência.

A tecnologia da informação possui papel fundamental na consecução das condições indispensáveis para a sobrevivência das organizações, porque 1. É, ao mesmo tempo, uma ferramenta provocadora de mudanças e meio de adaptação à nova realidade resultante da combinação de fatores endógenos e exógenos que aceleram o ritmo das mudanças do mundo moderno, 2. Está presente nos principais recursos de comunicação atual, e 3. Permite planejar, estruturar, coordenar, controlar as atividades produtivas, para maximizar a utilização dos fatores de produção de bens e serviços. A tecnologia da informação contribui para a satisfação dos clientes e para a lucratividade, desenvolvimento e perenidade da empresa com qualidade de vida de todos os atores econômicos e com respeito ao meio-ambiente.

Antes de prosseguir, adotaremos as seguintes definições:
Produtividade é uma medida da eficiência de um processo produtivo. Exemplos, produção de 50 pares de sapato por dia, atendimento de 5 pacientes por período, análise de 100 carteiras de crédito por mês etc.
Lucro é a diferença entre a receita obtida com a venda de produtos ou serviços, e os custos e despesas de produção e administração. Lucratividade é a relação entre o lucro e o valor das vendas.

A correta utilização da tecnologia da informação, no dia-a-dia, contribui significativamente para incrementar a produtividade, a lucratividade, o desenvolvimento e a perenidade da empresa. O investimento em tecnologia da informação inclui os seguintes recursos: hardware, software e conectividade, tecnicamente, ajustados às necessidades da empresa, e treinamento do principal patrimônio das empresas, os usuários, capacitando-os a utilizar todo o potencial disponibilizado pelo investimento em hardware, software e conectividade.

O avião mais moderno não poderá sequer levantar vôo se o comandante não for treinado a operá-lo de forma eficiente, eficaz e segura. De maneira semelhante, os colaboradores das empresas que estão bem capacitados em tecnologia da informação podem produzir enorme diferencial competitivo, tais como:
• Utilizam modernos recursos de comunicação de maneira otimizada, permitindo trocas de mensagens de modo rápido, com segurança e até com interatividade;
• Possibilitam trabalho compartilhado, simultâneo e coordenado de acordo com parâmetros de tempo, custo e recursos, definidos como referências de controle de produtividade;
• Agendamento organizado das atividades de cada membro da equipe, de forma a minimizar a ocorrência de procrastinação e a maximizar a produtividade coletiva;
• Apóiam a elaboração e o controle de projetos;
• Facilitam a padronização e segurança de dados para a realização de análises gerenciais de todas as atividades da empresa;
• Apóiam a comunicação sobre projetos, idéias e de relatórios, que necessitem ser analisados ou trabalhados em grupo, com recursos multimídia de forma a facilitar a transmissão de dados e informações;
• Facilitam a compreensão e interpretação de grandes volumes de dados e produzem relatórios sintéticos ou individualizados, conforme as necessidades específicas de cada usuário;
• Fomentam e facilitam o trabalho colaborativo e criativo.

O mais impressionante é que todos estes recursos estão disponíveis e podem atender a maioria das empresas, independente do porte. A empresa poderá ser circunstancialmente pequena, mas seus líderes podem e devem pensar grande. E o retorno do investimento bem orientado é garantido, porém existem duas condições básicas: estes investimentos devem ser orientados por profissional competente e com independência moral e financeira para dizer o que é preciso ser dito tecnicamente, e não necessariamente o que o contratante deseja ouvir. A segunda condição é a garantia da manutenção produtiva do investimento, que é o treinamento dos usuários de forma a capacitá-los a operar eficientemente o sistema e a identificar o que precisa ser melhorado, quais novas necessidades demandam ampliação dos recursos e do treinamento recebido. É desejável que além de melhorar a competência dos colaboradores como usuários dos recursos de tecnologia da informação, diretores e colaboradores sejam treinados em gestão empresarial e de pessoas, para que todos tenham uniformidade conceitual sobre lucro, segurança do negócio, desenvolvimento com qualidade de vida de líderes e liderados com respeito ao meio-ambiente, para que todos os investimentos da empresa contribuam para aumentar a riqueza dos seus investidores e possibilitem à empresa estabelecer boas práticas de gestão de pessoas, de forma a atrair e manter profissionais competentes, que trabalhem bem em equipe, para que a empresa tenha diferenciais competitivos de atendimento, de qualidade na entrega de produtos e serviços aos clientes, que crie nos clientes, nos fornecedores, colaboradores e nos financiadores uma imensa sensação de confiança e segurança.

Sobre os autores
Carlos César Tanaka
Formado em Ciências da Computação pelo IME-USP e Mestre em Sistemas Digitais pela EP-USP, possui 15 anos de experiência em ensino e treinamento de informática.
Atualmente é diretor da MPR Informática
Email: cesar@mprinformatica.com.br

Jansen de Queiroz
Administrador de empresas e pós-graduado em finanças e recursos humanos pela FGV e em Ciências Econômicas pela UERJ, com mais de vinte e cinco anos de experiência como executivo no nível de diretoria de empresas.
Atualmente atua como Coach e Consultor em Gestão Polifocal
e-mail: jansen@gestaopolifocal.com.br

Uso da Estrutura Select Case

Além da estrutura condicional If … EndIf, o VBA possui uma estrutura muito versátil e simples de ser usada em situações semelhantes a um “menu”, ou seja, um conjunto de opções, que quando uma delas for escolhida realiza-se uma sequência de comandos.
Mostrarei essa estrutura através de um exemplo que permite ao usuário digitar um valor na célula A2 da planilha Plan1 e de acordo com esse valor, uma macro (procedimento) será executada.

Text frame options

O código VBA deve ser digitado no container da Plan1. Depois de entrar no ambiente VBA (Alt+F11), dê um clique duplo na Plan1, que fica no Project Explorer (normalmente no lado esquerdo da tela).

Text frame options

O código para esse exemplo é apresentado a seguir:

Text frame options

Procura Vertical (PROCV) com imagens

A função de procura vertical (PROCV ou VLOOKUP em inglês) está entre as mais solicitadas pelos nossos alunos do Curso de Excel (http://www.mprinformatica.com.br/excelintermediario.html), isso se deve ao fato de frequentemente organizarmos informações em tabelas e precisarmos localizar e extrair algum dado específico.
A função PROCV extrai qualquer tipo de dado que esteja em uma célula, mas e se precisarmos extrair uma imagem? Ou seja, se quisermos procurar por um item e depois visualizar a imagem correspondente? Como exemplo, imagine que possuímos uma tabela que possua as informações de nossos clientes e como a tabela é extensa, ficaria muito prático se ao selecionarmos um cliente pudéssemos ver a foto desse cliente.
As células do Excel não armazenam nem exibem imagens, porém como as imagens são arquivos de computador, podemos armazenar o caminho das imagens nas células, ou seja a sua localização em disco, conforme mostrada na figura abaixo.

Colocamos esses dados numa planilha chamada Tabela. Nessa tabela simplificada, temos uma coluna Número, que pode ser o número de cadastro do cliente, o campo Nome – nome completo do cliente, e a coluna Caminho, que é a localização do arquivo de imagem com a foto do cliente. Neste exemplo, haverá uma pasta Imagem no drive C:, com todas as fotos dos clientes, o que torna bastante simples a organização e como os arquivos de imagem não foram incorporados na planilha do Excel, ela ficará muito leve.

Além da planilha com os dados onde serão feitas as pesquisas, criamos uma planilha chamada Principal, onde será efetuada a pesquisa, ou seja, onde usaremos a função PROCV. Ela terá a seguinte aparência.

onde:
> As células A1:A4 são apenas descrições
> A célula B1 é o local onde digitaremos o número do cliente, para que sejam exibidos o nome e a imagem do mesmo.
> A célula B2 possui uma simples busca pelo nome do clinte com a seguinte fórmula: =PROCV(Principal!B1;Tabela!$A$4:$C$9;2;FALSO)
> A célula B3 possui a busca pelo caminho da imagem. A fórmula é: =PROCV(Principal!B1;Tabela!$A$4:$C$9;3;FALSO)

Relembrando, as células do Excel não exibem imagens, então precisaremos de um recurso que faça isso. Escolhemos usar um controle ActiveX, para inseri-lo faça o seguinte:
– Ative a guia do Desenvolvedor (Botão do Office; Opções do Excel; ativar a caixa Mostrar guia Desenvolvedor na Faixa de Opções; OK.
– Na guia desenvolvedor, clique no botão Inserir (ícone de maleta com ferramentas) e clique sobre o controle Imagem (ActiveX);
– Agora desenhe um retângulo, arrastando o cursor do mouse de um vértice até o vértice oposto. O tamanho da imagem pode ser mudado depois através dos círculos em torno desse retângulo.

O local onde será exibida a imagem está pronto, veja o nosso exemplo na figura anterior. Esse controle precisa ser configurado, para isso clique no botão propriedades que está na guia Desenvolvedor. Altere as seguintes propriedades:
(Name) para imgfoto
PictureSizeMode para 1-fmPictureSizaModeStretch

Feche a janela de propriedades e desative o botão Modo de Design na guia Desenvolvedor.

A etapa final é elaborar um pequeno código em VBA para que a imagem seja atualizada sempre que um novo código for digitado. Para isso vá até o editor do VBA através da combinação Alt+F11 e dê um clique duplo na planilha Principal, conforme indicado na figura a seguir:

Do lado direito haverá uma grande área em branco para inserção de código, copie e cole o seguinte trecho:

Private Sub Worksheet_Change(ByVal Target As Range)
‘Lembrando que target é a referência para a célula modificada

‘verifica se a célula que contém o número do cliente foi modificada
‘Nesse caso é a célula B1
If Target.Row = 1 And Target.Column = 2 Then
‘Carrega imagem de acordo com o caminho indicado na procura vertical
‘A função LoadPicture carrega um caminho de imagem na propriedade Picture
‘O seu uso é necessário
imgfoto.Picture = LoadPicture(Range(“B3”).Value)
End If
End Sub

Feche o editor de VBA e salve a planilha habilitando-a para usar macros: Salvar Como e depois escolher a segunda opção “Pasta de Trabalho habilitada para Macro do Excel”.

Antes de experimentar o sistema, crie uma pasta com o nome Imagens, no drive C: (se for outro local, mude também o caminho na tabela) e copie os arquivos de imagem listados na tabela, como exemplo, eu disponibilizei para download um arquivo compactado com as imagens usadas no exemplo (imagens.zip)

Agora teste o sistema, digitando valores na célula B1 da planilha principal.
(Este exemplo pode ser baixado neste link procura vertical com imagens.xlsm)

Como ajustar a escala do eixo de um gráfico em VBA

Gráficos são excelentes ferramentas para análise de dados, eles fornecem uma excepcional visão qualitativa de um fenômeno a ser estudado. Algumas vezes, porém, temos que ajustar a escala do gráfico para que possamos observar o trecho que nos interessa, nada que não se possa fazer configurando os valores mínimo e máximo dos eixos, mas e se houvesse uma maneira mais rápida de fazer isso?

Essa maneira mais rápida existe e pode ser feita com auxílio do VBA. Para exemplificar vamos apresentar um exemplo semelhante ao que apresentamos em nosso curso de VBA para Excel (http://www.mprinformatica.com.br/vbaexcel2007.html). Considere um gráfico, chamado “Gráfico 1” que está dentro da planilha “Plan1”. Ele representa uma função de segundo grau, a famosa parábola (y=ax2 + bx + c) , cujos coeficientes a, b e c estão nas células A5, B5 e C5 respectivamente. Os pontos da função estão no intervalo B7:V8. Veja a figura abaixo:

Observe como está a fórmula na célula B8, que depois foi copiada para as outras células na linha 8. Note que também já foram inseridos três botões. Foram inseridos pela guia Desenvolvedor (se ela não estiver aparecendo Clique no botão do Office, Opções do Excel, Mais Usados e ative o item Mostrar guia Desenvolvedor na faixa de Opções), Inserir / Botão de Comando (ActiveX).

Botão da esquerda: (Name) = cmdMenos ; Caption = < Botão do meio: (Name) = cmdAutomático ; Caption = Automático Botão da esquerda: (Name) = cmdMais ; Caption = >

Enquanto estiver criando os códigos, mantenha o Modo de Design ativado na guia Desenvolvedor.

Mostrarei o código para o botão cmdMenos, realiza um Zoom na escala do eixo X. Para os demais botões o código é semelhante e pode ser obtido fazendo download do arquivo (clique aqui para download). Estando no Modo de Design, dê um clique duplo no botão da esquerda para editar o código VBA.

‘Reduz a distância entre o máximo e o mínimo pela metade
Private Sub cmdMenos_Click()
Dim Grafico As ChartObject
Dim EixoX As Axis
Dim Delta As Double

‘ Variável que aponta para o Gráfico 1. Selecione o gráfico e verifique o nome do seu objeto gráfico na barra de nomes do Excel.
Set Grafico = Plan1.ChartObjects(“Gráfico 1”)
‘ Objeto que aponta para o Eixo horizontal do gráfico
Set EixoX = Grafico.Chart.Axes(xlCategory)
With EixoX
‘A escala do eixo horizontal irá dobrar de tamanho, metade em direção
‘ao mínimo, metade em direção ao máximo
Delta = (.MaximumScale – .MinimumScale) / 2
‘Altera o mínimo
.MinimumScale = .MinimumScale – Delta
‘Altera o máximo
.MaximumScale = .MaximumScale + Delta
End With
‘Libera apontadores para os objetos
Set Grafico = Nothing
Set EixoX = Nothing
End Sub

Ressalto que quando um gráfico está dentro de uma planilha ele é do tipo ChartObject, porém se ele está separado da planilha é do tipo Chart, ou seja a hierarquia de objetos muda.
Façam download do arquivo, experimentem o exemplo e analisem o código VBA.

Carlos César Tanaka
MPR Informática
Cursos de Excel e VBA