Notifications
Clear all

Macro para formatar base COLUNAR

7 Posts
2 Usuários
0 Reactions
2,126 Visualizações
(@jonascruz)
Posts: 64
Trusted Member
Topic starter
 

Pessoal, boa tarde.

Tenho uma base que extraio de um sistema (Aba 1) e preciso transformar essa base de forma colunar (Aba 2) para fazer comparativos.
Colori para facilitar os grupos de informações.

Seria possível alguem me ajudar com o algoritmo "em português mesmo" para eu tentar fazer em VBA.

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 18/05/2017 2:50 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite Jonas,

Realmente tem que pensar em alguns detalhes para transformar essa base. Uma dica inicial que posso dar é Desmesclar todas as células da planilha 'Base', isso facilita no montagem do código.

att,

 
Postado : 18/05/2017 4:02 pm
(@jonascruz)
Posts: 64
Trusted Member
Topic starter
 

Eu até pensei nisso. Mas apesar dessa base estar bem pequena, ela é um consolidado de 10 bases iguais a essa, só que com mais de 5 mil linhas cada, algumas chegam a 8 mil linhas. A macro para consolidar essas bases já está pronta, agora eu preciso montar os dados. Cheguei a pensar em montar os dados conforme eu consolido, mas não sei se seria eficiente e não complexo. A questão dos dados mesclados não altera nada, porque os dados que eu preciso não estão mesclados, apenas os cabeçalhos que se repetem, então não muda muita coisa.
A ajuda que eu preciso é como montar a estrutura de repetição, para varrer até o final do arquivo, é uma estrutura de repetição de dados onde tem o endereço. Eu tenho N linhas técnicas azuis, mas eu terei que repetir o endereco e o código essas N vezes para acompanhar as informações colunares.

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 18/05/2017 5:30 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite Jonas,

Na verdade o mesclar atrapalhar a montagem, principalmente quando você tentar buscar valores e colocar 'ancoras' nas sua rotina.

Exemplo de 'ancora', é na coluna A buscar por 'Código', depois por 'Frêquencia' e depois pegar os valores e jogar na planilha 'Base Colunar'. E ir repetindo isso.

 
Postado : 18/05/2017 7:52 pm
(@jonascruz)
Posts: 64
Trusted Member
Topic starter
 

Blz. Vou tentar montar um esqueleto e desfazer a mesclagem de célula. De qualquer forma, vou ternqueninckuir na rotina da macro retirar todas as células mescladas. Meu medo é deixar o código lento, mas vou tentar e posto a evolução.

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 19/05/2017 3:47 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite Jonas Nogueira,

Estava olhando o seu caso e resolvi tentar montar um código que organize a estrutura.

O resultado está em anexo, veja o módulo1.

Coloquei alguns comentários para você entender o que fiz. Recomendo: https://www.youtube.com/results?search_ ... C3%A3o+vba

Sobre o código ficar lento, testei aqui e todo o processo com as 2 mil linhas foi realizado em 2 segundos. Acho que com por exemplo 100 mil linhas não deva levar mais de 2 ou 3 minutos (óbvio que depende do processador e memória). O que eu recomendaria pelo que você escreveu é consolidar todas as planinhas em uma, depois copiar para o arquivo que tem essa macro, rodar a macro e copiar o resultado para outra planilha.

OBS: Lembre-se, esse código que montei só vai funcionar para planilhas com a mesma estrutura da que você pôs de exemplo.

att,

 
Postado : 20/05/2017 4:49 pm
(@jonascruz)
Posts: 64
Trusted Member
Topic starter
 

@brunoxro

Eu não diria que ficou "bom", pois é exatamente o que eu precisava.
Muito obrigado por sua ajuda e paciência.
Essa funcionalidade eu vou adicionar à outras que eu já fiz, e vou te enviar por email a solução completa com as bases, caso queira ver a grande utilidade dessa sua contribuição.

Não tenho palavras para agradecer.

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 22/05/2017 2:55 pm