terça-feira, 2 de setembro de 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

Sharepoint enviando email através de SMTP externo com autenticação

Sharepoint enviando email através de SMTP externo com autenticação Uma demanda interna nossa é que na nossa sede não tem IP Fixo. nesse c...