Notifications
Clear all

Mover uma linha para nova planilha

5 Posts
2 Usuários
0 Reactions
1,559 Visualizações
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Boa noite a todos!

Temos várias pastas de trabalho com o mesmo conteúdo separado por colunas: Data, nome do funcionário, código do produto, descrição do produto, etc. Ao todo são 12 colunas.

O problema é o seguinte: existe muitos arquivos - datados desde 2002 - com estes registros, todos neste padrão, mas não estão separados nas pastas por um critério. Simplesmente os moviam os registros antigos para um diretório quando haviam passados 2 anos do fechamento. Outros colegas vieram depois, tentaram sem sucesso organizar... Enfim está tudo uma bagunça!

Direto ao assunto: Eu gostaria de saber se há no VBA uma forma de ele automatizar a catalogação destes dados separando, inicialmente, pela matrícula do funcionário. Ele varreria a planilha (algumas com mais de 700 linhas) e movesse A LINHA com esta matrícula e todo seu conteúdo para uma nova planilha, como dados somente dele e salvasse com um nome qualquer.

Eu pensei em usar um renomeador e mudar os nomes dos arquivos originais por numerais em ordem crescente, do arquivo mais antigo para o mais novo, para que ficasse mais fácil do VBA fazer o trabalho de abrir continuamente os arquivos (por exemplo abre o 1.xls, depois o 2.xls, 3.xls, etc), até último o arquivo e mais recente.

Uma observação: movido os dados da linha para esta nova planilha, o arquivo de origem NÃO PODE FICAR com a linha em branco! Esta linha teria que ser excluída!

É possível o VBA fazer este tipo de "varredura"?

Obrigado a todos!

 
Postado : 06/11/2019 7:02 pm
(@faraha)
Posts: 28
Eminent Member
 

Boa noite Cacilds,

Respondendo as suas perguntas:

É possível? Resposta: Sim

Se todos os arquivos estiverem padronizados do jeito que informou facilita muito, podemos até chamar de uma rotina simples.

Observações:
1 - Caso deseje ajuda com a elaboração do código da Rotina, posta aqui um exemplo dos seus arquivos, com dados fictícios caso necessário, que lhe ajudamos com a elaboração do seu projeto.

2 - Renomear os arquivos para 1.xls, 2.xls não interfere muito na praticidade do código não, se colocar todos os arquivos no mesmo diretório("na mesma pasta") já facilita bastante, mas mesmo assim daria para realizar se houvessem vários diretórios.

Creio que caso lhe passasse um rotina genérica talvez não conseguiria adaptar a sua realidade, então posta aqui um exemplo, ficarei mais do que feliz em ajudar.

 
Postado : 06/11/2019 7:48 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

FarahA, muito obrigado pela ajuda!

Mas como colocar um arquivo de exemplo? O link para o arquivo no Google Drive? O que você sugere?

 
Postado : 07/11/2019 5:02 am
(@faraha)
Posts: 28
Eminent Member
 

Bom dia Cacilds,

Pode compartilhar via google drive mesmo, ou então via dropbox, send space ou qualquer outro site de compartilhamento.

Fortr abraço!

 
Postado : 07/11/2019 5:22 am
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

FarahA, peço desculpa pela demora...

Eis o link do arquivo: https://drive.google.com/file/d/1MiMVOv ... sp=sharing

Formatei para facilitar o entendimento. Como o exemplo quero que o excel varra todas as linhas e, a cada momento que encontrar o valor "12345-6" na coluna B ele mova a linha inteira para uma nova pasta de trabalho. Aqui eu movi para a plan2 para facilitar, mas eu quero que seja um novo arquivo.

A cada registro movido, a linha em branco que ficar no arquivo original deve ser excluída! Quando o arquivo destino chegar a "X" linhas, a pasta deve ser salva (pode ser 001, 002, 003.xlsx para facilitar) e continuar a varredura salvando tudo num novo arquivo.

Na verdade a intenção é fazer separar os arquivos por um critério, deixando cada um em uma pasta diferente, como a pasta "12345-6", "12033-5", "11678-3" e assim por diante. Em outro momento, outro critério seria escolhido e as pastas teriam subpastas com o código "988", por exemplo.

Agradeço o auxílio!

 
Postado : 07/11/2019 9:44 pm