segunda-feira, abril 28, 2014

Consolidar: Várias Guias em uma Única - com VBA


Consolidar: Várias Guias em uma Única - com VBA



Recebi um e-mail de um amigo a quem não vejo há um bom tempo: Nadir Bassegio. O mesmo solicitou o desenvolvimento de uma solução para uma necessidade sua. A seguir, a questão levantada no e-mail que recebi:




"A questão é a seguinte: gero um relatório no ERP que vai diretamente para o Excel. Ele gera 40 guias (planilhas) numa pasta do Excel, todas com o mesmo nº de colunas, porém com quantidade de linhas diferentes.
Estou usando excel 2007 e tentando juntar todas estas informações em uma única guia (planilha), usando o recurso ... (Aqui ele menciona o que tentou utilizar e não funcionou) ... "
Sua necessidade é: "Desenvolver uma solução para fazer esta junção, de todas as guias em uma única."

Para ajudar meu amigo Nadir e também outras pessoas que talvez precisem de uma solução igual ou parecida, resolvi escrever esta postagem que trata do assunto.



Conforme a figura ao lado, estarei utilizando 3 planilhas (Plan1, Plan2 e Plan3).

As informações contidas nestas planilhas serão todas consolidadas na planilha Consolidado.



Para fazer a consolidação das informações, criei uma macro. Observe a figura a seguir.

Entendendo a Macro:

1ª linha: limpa a área na planilha 1 (Consolidados) para garantir que não haja dados inseridos anteriormente.

2ª linha: com a variável 'plans', faz uma contagem da quantidade de planilhas existente na pasta (em nosso exemplo há 4 planilhas).


A instrução 'For...Next' faz uma repetição do grupo de instruções um número específico de vezes.

Em nosso caso, fará a repetição das instruções (que estão entre For...Next) por três vezes. A instrução 'For n = 2 to plans' faz 3 repetições das instruções pois inicia em 2 até atingir a valor da variável plans que é igual a 4 (quantidade de planilhas da pasta de trabalho).

As instruções que são repetidas (por 3 vezes em 'For...Next') em todas as linhas com as informações (até encontrar uma célula vazia na coluna 'A') de cada planilha incluindo as mesmas na planilha Consolidados (Sheets(1)).

A quantidade de planilhas (guias) pode ser variável desde que tenham o mesmo número de colunas com os mesmos tipos de informação em cada coluna. Isso ocorre porque, como vimos, a variável 'plans' fará a contagem da quantidade de planilhas existentes na pasta de trabalho e as instruções serão repetidas o número de vezes até atingirem esta quantidade.

Espero ter sido claro e espero que esta postagem possa estar respondendo a questão mencionada.

Se desejarem divulgar a seus amigos, fique a vontade e eu ficarei grato pois, muitos podem estar precisando desta solução ou algo parecido que pode ser atendido com algum ajuste.

Até a próxima postagem!
Ivair Claudio Ferrari



Sobre o autor: Ivair Claudio Ferrari é Certificado: Microsoft Office Excel Specialist; Consultoria e Desenvolvimento de Soluções e Softwares em Excel/VBA, Bancos de dados Access, Firebird, Oracle, Interação com SAP/R3 e Treinamentos In-Company. YouTube | Facebook | LinkedIn | Twitter | Google Plus

15 comentários :

  1. Olá Professor.

    Esta postagem está simplesmente fantástica. Tinha um procedimento aqui que era muito demorado mas, agora com esta macro, ficou muito bom ... rápido e com exatidão.

    Parabéns !!!
    Solano.

    ResponderExcluir
  2. O Mestre Ivair, show de bola é isto daí mesmo, quem sabe sabe...

    Obrigado

    ResponderExcluir
  3. Valeu Nadir! Espero que ajude.

    Precisando, estou a disposição

    Ivair

    ResponderExcluir
  4. O melhor blog de Excel que conheço. muito bom!

    ResponderExcluir
  5. Deste jeito não tem graça. Assim fica muito fácil de fazer as coisas do dia-a-dia.

    Parabéns !!!!!!!!!!!!

    ResponderExcluir
  6. Concordo com o Vander!

    Não me dou muito bem com o Inglês mas, ficou fácil agora.....

    ResponderExcluir
  7. Parabéns pelo seu blog. Eu e meus amigos somos fãs. Continue nos ensinando. Obrigada!

    ResponderExcluir
  8. Parabéns Ivair! São ótimos seus métodos de ensino...

    ResponderExcluir
  9. Obrigado a todos pelos comentários. Continuem acessando e divulguem a seus amigos pois, eles podem estar precisando...

    Grande abraço a todos!
    Professor Ivair Claudio Ferrari.

    ResponderExcluir
  10. Muito Obrigada Ivair, isso vai me ajudar muito! Agora complicando um pouquinho, como faço isso pegando dados de diversas planilhas? Existe uma maneira?

    Obrigada!

    Fernanda

    ResponderExcluir
  11. Boa tarde!


    Essa macro funcionou com a utilização do Excel de 60 abas em dois arquivos diferentes, sendo que cada aba possui o nome diferente.

    bom trabalho, grato

    ResponderExcluir
    Respostas
    1. Bom ter ajudado.

      Grande abraço!
      Professor e consultor: Ivair Claudio Ferrari

      Excluir
  12. Amigo, vc está de parabéns!!! Tava quebrando a cabeça para unificar n abas, e sua macro é simples e funcional!!!! Ou seja, perfeito!!!!

    ResponderExcluir
  13. Respostas
    1. Obrigado amigo Tiago! Acompanhe pois em breve novas e ricas matérias serão publicadas aqui no Excelmax Soluções.

      Grande abraço!

      Excluir

Seja um participante deste Site !!!
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

atualizar, excel, excelmax
excelmax, excel