Analisando propostas

Personalização De Lista - Vba Excel

Publicado em 03 de Março de 2023 dias na TI e Programação

Sobre este projeto

Aberto

Olá!
tenho um software de desenho que se chama topsolid.
DESENHAMOS Móveis como por exemplo armário guarda roupas.
No momento de fabricar os móveis projetados, é gerada em .Txt uma lista (bom) de produtos e materiais e suas hierarquias para formar a engenharia de montagem do produto.Antes da importação deste arquivo em nosso sistema de gestão (erp) precisamos de um script no vba do excel para fazer um tratamento nessa lista reorganizando algumas informações e criando novos registros.
Etapas da personalização
1 - criar uma nova linha serviço de corte para cada registro que atenda critérios descritos mais à frente;
2 - criar uma nova linha serviço de filetação para cada registro que atenda critérios descritos mais à frente  ;
3 - criar uma nova linha serviço de usinagem para cada registro que atenda critérios descritos mais à frente  ;4 - criar uma linha "filho" para mdf cortado que estejam sem "pai" adicionando um código único para o pai conforme descrito mais à frente;5 - agrupar em uma mesma linha e somar as quantidades de materiais com mesmo código na mesma posição da hierarquia;
informações sobre a lista
- formato de tabela em txt;
- cada linha é um produto, componente, material, ou serviço;- cada coluna é um campo específico (código, largura, altura, descrição, quantidade, etc);
- a ordem das linhas é de acordo com a hierarquia da engenharia do produto;
- a primeira coluna é o nível, que indica também a hierarquia da engenharia;
ex simplificado:
nivel 0: nicho de madeira com 2 prateleiras (produto)nível 1: nicho (componente)nível 2: madeira mdf (material)nível 2: fita de borda (material)nível 2: corte (serviço)nível 1: prateleira "a" (componente)nível 2: madeira mdf (material)nível 2: fita de borda (material)nível 2: corte (serviço)nível 1: prateleira "b" (componente)nível 2: madeira mdf (material)nível 2: fita de borda (material)
nível 2: corte (serviço)
1. Rotina para criar serviço de corte:
- criar 1 nova linha ref a serviço de corte logo abaixo cada linha contendo "peca" ou "seccionadora" na coluna k (tipo);- preencher em cada  linha criada:level: copiar o mesmo valor do registro original acima do que está sendo criadoreference: "corte"designation: "serviço de corte"count: "1"demais campos deixar em branco
2. Rotina para criar serviço de filetação:
- criar 1 nova linha referente ao serviço de filetação logo abaixo de cada linha contendo "fita de borda" ou "edge shape" na coluna k (tipo);
- preencher em cada nova linha criada:level: copiar o mesmo valor do registro original acima do que está sendo criadoreference: "filetação"
designation: "serviço de filetação"count: "1"demais campos deixar em branco
3. Rotina para criar serviço de usinagem:
- criar uma nova linha referente ao serviço de filetação  logo abaixo de cada linha contendo "usinagem" na coluna k (usinagem_a);
- preencher em cada nova linha criada:level: copiar o mesmo valor do registro original acima do que está sendo criadoreference: "usinagem"
designation: "serviço de  usinagem"count: "1"demais campos deixar em branco- criar outra nova linha referente ao serviço de filetação  logo abaixo de cada linha contendo "usinagem" na coluna k (usinagem_b);
- preencher em cada nova linha criada:reference: "usinagem"
designation: "serviço de  usinagem"count: "1"demais campos deixar em branco
4. Criar linha filho:- considerar como "pai" de um material a primeira linha acima da linha "filho" que tenha na coluna a (level) um número a menos que a coluna "filho"- para cada linha cujo pai não tenha  "panel process" ou "processo de painel" na coluna k (tipo), criar uma nova linha logo acima;- nessa nova linha preencher:- level: copiar o mesmo da linha original- reference: copiar o valor do pai e concatenar um "." E concatenar com a coluna P (ELEMENT_IDENTIFIER)- DESIGNATION: Copiar da linha original- type: "peca / processo de painel / panel process"- demais campos: copiar da linha original
5. COMPACTAR LINHAS
- ENCONTRAR LINHAS QUE SÃO EXATAMENTE IGUAIS EM TODOS OS CAMPOS COM EXCEÇÃO DO "ELEMENT_IDENTIFIER" E JUNTAR EM UMA MESMA LINHA SOMANDO OS VALORES DO CAMPO "COUNT"

EM ANEXO LISTA TXT GERADA PELO TOPSOLID

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: 07 de Março de 2023

Habilidades necessárias

VBA

Outro projetos publicados por F. T. C.