Completed

Relatório por Vba

Published on the August 10, 2018 in IT & Programming

About this project

Open

Precisamos que seja desenvolvida uma macro, em vba, que faça o seguinte:

Ler o conteúdo de uma aba "Dados", onde haverá conteúdo como o abaixo:
<rt_pesquisa><![cdata[ [{"id":"fieldset-662","type":"fieldset","label":"mercado de comércio eletrônico","tab":"tabstrip","survey":[{"id":"input-001","type":"radiogroup","required":1,"label":"o cliente aceita responder à pesquisa?","options":["sim","não"],"showifchecked":{"option1":["input-020"],"option0":["input-002","input-003","input-004","input-005","input-007","input-008","input-009","input-010","input-011","input-012","input-013","input-014","input-015","input-016","input-017","input-019","input-020"]},"value":["sim"]},{"id":"input-002","type":"radiogroup","required":false,"label":"idade do entrevistado","options":["15 a 24 anos","25 a 34 anos","35 a 44 anos","45 a 54 anos","55 a 64 anos","maior de 65 anos"],"value":["25 a 34 anos"]},{"id":"input-003","type":"input","required":false,"label":"profissão do entrevistado","value":["assistente de projetos"]},{"id":"input-004","type":"switchgroup","required":false,"label":"você comprou nos últimos 3 meses algum destes produtos através do meio eletrônico?","options":["acessórios automotivos","alimentos e bebidas","beleza","brinquedos","calçados e acessórios","cama, mesa e banho","eletroeletrônicos","farmácia","ferramentas gerais","games","gráfica","livros","material escolar","ótica","petshop","roupas","tabacaria","outros"],"showifchecked":{"option17":["input-021"]},"value":["alimentos e bebidas","eletroeletrônicos","farmácia"]},{"id":"input-021","type":"input","required":false,"label":"qual outro produto você comprou por meios eletrônicos nos últimos seis meses?","value":[]},{"id":"input-005","type":"radiogroup","required":false,"label":"existe algum item que você gostaria de adquirir através de lojas virtuais?","options":["sim","não"],"showifchecked":{"option0":["input-006"]},"value":["sim"]},{"id":"input-006","type":"input","required":false,"label":"qual produto você gostaria de adquirir através de lojas virtuais?","value":["compras de supermercado"]},{"id":"input-007","type":"text","required":false,"label":"o que influencia sua compra de produtos pelo meio eletrônico?","value":[]},{"id":"input-008","type":"range","required":false,"label":"preço do produto (valor menor que o encontrado no varejo físico)","min":1,"max":10,"value":["10"]},{"id":"input-009","type":"range","required":false,"label":"disponibilidade do produto (em caso de encomendas)","min":1,"max":10,"value":["10"]},{"id":"input-010","type":"range","required":false,"label":"diversidade de opções (possibilidade de comparação em lojas)","min":1,"max":10,"value":["10"]},{"id":"input-011","type":"range","required":false,"label":"promoções\/saldões","min":1,"max":10,"value":["8"]},{"id":"input-012","type":"range","required":false,"label":"frete grátis","min":1,"max":10,"value":["8"]},{"id":"input-013","type":"range","required":false,"label":"reputação da loja","min":1,"max":10,"value":["8"]},{"id":"input-014","type":"range","required":false,"label":"qualidade da entrega (atendimento da loja no ato de recebimento)","min":1,"max":10,"value":["8"]},{"id":"input-015","type":"range","required":false,"label":"local de entrega (opção de envio e agendamento)","min":1,"max":10,"value":["8"]},{"id":"input-016","type":"range","required":false,"label":"prazo de entrega (prazos curtos e cumprimento)","min":1,"max":10,"value":["8"]},{"id":"input-017","type":"radiogroup","required":false,"label":"qual o método de entrega mais confiável e eficiente para produtos adquiridos através do comércio eletrônico?","options":["correios","transportadoras de cargas","motofrete","transporte próprio do vendedor","utilização de armários em locais públicos","outro"],"showifchecked":{"option5":["input-018"]},"value":["transportadoras de cargas"]},{"id":"input-018","type":"input","required":false,"label":"qual outro método de entrega o entrevistado considera confiável?","value":[]},{"options":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"label":"em qual mês você gostaria que houvesse mais promoções?","required":false,"type":"radiogroup","id":"input-019","value":["janeiro"]},{"label":"a flash courier e o iptc agradecem a sua participação","required":false,"type":"text","id":"input-020","value":[]}],"value":[]}] ]]></rt_pesquisa>

o código em vba deverá pegar o conteúdo da aba "dados" e gerar uma nova aba, "relatório". Na aba relatório, deverá fazer o seguinte:

    - Ler toda a string de dados;
    - Nos casos em que houver um "value" depois de um "labels", selecionar o label anterior e torna-lo um rótulo de coluna; o value será o valor da linha da coluna. Exemplo:
    
    No trecho <rt_pesquisa><![cdata[ [{"id":"fieldset-662","type":"fieldset","label":"mercado de comércio eletrônico","tab":"tabstrip","survey":[{"id":"input-001","type":"radiogroup","required":1,"label":"o cliente aceita responder à pesquisa?","options":["sim","não"],"showifchecked":{"option1":["input-020"],"option0":["input-002","input-003","input-004","input-005","input-007","input-008","input-009","input-010","input-011","input-012","input-013","input-014","input-015","input-016","input-017","input-019","input-020"]},"value":["sim"]}, temos:
    
    um "label 1" ("label":"mercado de comércio eletrônico") seguido de outro "label 2" ("label":"o cliente aceita responder à pesquisa?"), então o primeiro label não deve ser considerado um rótulo de coluna;
    
    seguindo, temos o "label 2" ("label":"o cliente aceita responder à pesquisa?"), seguido do "value 1" ("value":["sim"]) e do "label 3" ("label":"idade do entrevistado").
Então, o "label 2" deve virar um rótulo de coluna, gerando a coluna "O cliente aceita responder à pesquisa?" e o primeiro dado desta coluna deve ser o "value 1".
    
    O código deve fazer este procedimento para todas as strings da aba "dados". Caso, em alguma linha, exista um label que ainda não tinha aparecido e seja sucedido de um value, sendo, portanto, um rótulo de coluna, o código deverá acrescentar uma coluna na aba relatório.
    
    De forma semelhante, caso, no processamento das linhas, o código verifique que uma string não contém um dos labels já criados, a célula desta coluna nesta linha deverá ficar em branco.
    
Adicionalmente, o código em vba e as fórmulas devem estar destravadas na versão final entregue.

Segue anexo o modelo dos dados que serão processados.

Category IT & Programming
Subcategory Web development
What is the scope of the project? Create a new custom site
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Roles needed Developer, Other
Other roles needed Excel, VBA

Delivery term: August 17, 2018

Skills needed

Other projects posted by R. H. D. S.