Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Procurar em .txt e Organizar cada produto.

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
LuizFeijo
Colaborador
Colaborador
Mensagens: 26
Registrado em: Dom Nov 18, 2018 6:08 pm

Procurar em .txt e Organizar cada produto.

Mensagem por LuizFeijo »

Pessoal abaixo está um exemplo que consegui dentro de um arquivo .txt com os mesmos dados, todo organizado em um padrao. como voces podem ver cada produto é separado pela grandeza <produto item="1"> ,onde o sistema vai identificar a cada novo produto o numero ="1"; ="2"; ="3". e dentro de cada produto tem suas informacoes, descriçao, quantidade de cada numero. Acredito que o 'Do while' ou 'Do until', consegue buscar essas informações e organiza-las da forma como mencionei anteriormente.
<produto item="1">
<nome>Sapato Scarpin</nome>
<categoria>Sapato Scarpin</categoria>
<referencia>SC010A</referencia>
<valor_atacado>74.90</valor_atacado>
<valor_dropshipping>82.39</valor_dropshipping>
<status_promocao>0</status_promocao>
<marca>Torricella</marca>
<descricao>
<![CDATA[ Material: Verniz Preto / Camurça Preto / Napa Prata Velho; Palmilha: 8 mm de Espessura, Espuma em EVA, Revestida em Verniz Preto e Taloneira Napa Bege; Forro: Napa Bege; Salto: Fino com 9,5 cm de Altura e Revestido em Verniz Preto; Solado de Micro na cor Preto. ]]>
</descricao>
<dimensao_caixa_cm>28 x 20 x 9.5</dimensao_caixa_cm>
<peso_gramas>600</peso_gramas>
<data_cadastro>12/11/2021</data_cadastro>
<reposicao_estoque>1</reposicao_estoque>
<url_produto>
<![CDATA[ https://www.revendadecalcados.com.br/produto-7337.html ]]>
</url_produto>
<fotos item="1">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... d7729c.jpg ]]>
</url_foto>
</fotos>
<fotos item="2">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... 3d6ca9.jpg ]]>
</url_foto>
</fotos>
<fotos item="3">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... dff49c.jpg ]]>
</url_foto>
</fotos>
<fotos item="4">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... d51b20.jpg ]]>
</url_foto>
</fotos>
<fotos item="5">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... 99e996.jpg ]]>
</url_foto>
</fotos>
<estoque item="1">
<tamanho>34</tamanho>
<quantidade>4</quantidade>
</estoque>
<estoque item="2">
<tamanho>35</tamanho>
<quantidade>8</quantidade>
</estoque>
<estoque item="3">
<tamanho>36</tamanho>
<quantidade>10</quantidade>
</estoque>
<estoque item="4">
<tamanho>37</tamanho>
<quantidade>10</quantidade>
</estoque>
<estoque item="5">
<tamanho>38</tamanho>
<quantidade>8</quantidade>
</estoque>
<estoque item="6">
<tamanho>39</tamanho>
<quantidade>4</quantidade>
</estoque>
</produto>

<produto item="2">
<nome>Sapato Scarpin</nome>
<categoria>Sapato Scarpin</categoria>
<referencia>SC007A</referencia>
<valor_atacado>74.90</valor_atacado>
<valor_dropshipping>82.39</valor_dropshipping>
<status_promocao>0</status_promocao>
<marca>Torricella</marca>
<descricao>
<![CDATA[ Material: Nobuck Preto / Napa Dourado; Palmilha: 8 mm de Espessura, Espuma em EVA, Revestida em Nobuck Preto e Taloneira Napa Bege; Forro: Napa Bege; Salto: Fino com 9,5 cm de Altura e Revestido em Nobuck Preto; Solado de Micro na cor Preto. ]]>
</descricao>
<dimensao_caixa_cm>28 x 20 x 9.5</dimensao_caixa_cm>
<peso_gramas>600</peso_gramas>
<data_cadastro>12/11/2021</data_cadastro>
<reposicao_estoque>1</reposicao_estoque>
<url_produto>
<![CDATA[ https://www.revendadecalcados.com.br/produto-7336.html ]]>
</url_produto>
<fotos item="1">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... e9e374.jpg ]]>
</url_foto>
</fotos>
<fotos item="2">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... f9ead3.jpg ]]>
</url_foto>
</fotos>
<fotos item="3">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... 68d9c8.jpg ]]>
</url_foto>
</fotos>
<fotos item="4">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... d4ad97.jpg ]]>
</url_foto>
</fotos>
<fotos item="5">
<url_foto>
<![CDATA[ https://www.revendadecalcados.com.br/fm ... 844db5.jpg ]]>
</url_foto>
</fotos>
<estoque item="1">
<tamanho>34</tamanho>
<quantidade>4</quantidade>
</estoque>
<estoque item="2">
<tamanho>35</tamanho>
<quantidade>8</quantidade>
</estoque>
<estoque item="3">
<tamanho>36</tamanho>
<quantidade>10</quantidade>
</estoque>
<estoque item="4">
<tamanho>37</tamanho>
<quantidade>10</quantidade>
</estoque>
<estoque item="5">
<tamanho>38</tamanho>
<quantidade>8</quantidade>
</estoque>
<estoque item="6">
<tamanho>39</tamanho>
<quantidade>4</quantidade>
</estoque>
</produto>
Não estou conseguindo anexar o .txt, mais se um dos senhores solicitar tento de outra maneira.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Procurar em .txt e Organizar cada produto.

Mensagem por Raygsson »

Esse seu texto é um XML, o VBA tem métodos pra fazer a leitura disso.
No exemplo abaixo inclui o texto na célula A1, com algumas modificações pode ser carregado direto do .TXT tbm.

Código: Selecionar todos

Sub Exemplo()

Set objXML = CreateObject("MSXML2.DOMDocument.6.0")

objXML.LoadXML (Range("A1"))

Set produtos = objXML.SelectNodes("//produto")

For Each produto In produtos

   objXML.LoadXML (produto.XML)
   
   Debug.Print objXML.SelectSingleNode("//referencia").Text
   Debug.Print objXML.SelectSingleNode("//descricao").Text
   
Next
    
End Sub

exemplo.PNG
exemplo.PNG (129.97 KiB) Exibido 2469 vezes
Anexos
exemplo.zip
(13.79 KiB) Baixado 129 vezes


LuizFeijo
Colaborador
Colaborador
Mensagens: 26
Registrado em: Dom Nov 18, 2018 6:08 pm

Re: Procurar em .txt e Organizar cada produto.

Mensagem por LuizFeijo »

bom dia Raygsson, desde já agradeço a resposta,
Raygsson escreveu: Sáb Nov 20, 2021 4:39 pm Esse seu texto é um XML, o VBA tem métodos pra fazer a leitura disso.
No exemplo abaixo inclui o texto na célula A1, com algumas modificações pode ser carregado direto do .TXT tbm.

Código: Selecionar todos

Sub Exemplo()

Set objXML = CreateObject("MSXML2.DOMDocument.6.0")

objXML.LoadXML (Range("A1"))

Set produtos = objXML.SelectNodes("//produto")

For Each produto In produtos

   objXML.LoadXML (produto.XML)
   
   Debug.Print objXML.SelectSingleNode("//referencia").Text
   Debug.Print objXML.SelectSingleNode("//descricao").Text
   
Next
    
End Sub

exemplo.PNG
De fato o que tenho aqui nao é o .xml, pois o site onde tenho cadastro só disponibiliza o codigo(arvore), então eu copiei o código pra o .txt, segundo o seu raciocínio como que eu consigo que o vba vá em cada palavra especifica(\nome>;\categoria>;\referencia>;\valor_atacado>74.90....) e coloque cada resultado do que ele encontrar, em colunas em sequencia, uma apos outra?

exemplo como deve ficar, está em anexo o a planilha com o padrao que tem de retornar.
Anexos
excel vba estoque.rar
(14.05 KiB) Baixado 133 vezes


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Procurar em .txt e Organizar cada produto.

Mensagem por Raygsson »

O script base está ai, pra um exemplo melhor anexe o seu arquivo(tem que zipar).


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


LuizFeijo
Colaborador
Colaborador
Mensagens: 26
Registrado em: Dom Nov 18, 2018 6:08 pm

Re: Procurar em .txt e Organizar cada produto.

Mensagem por LuizFeijo »

ola Raygsson, sou leigo em vba, to tentando até agora desde manha aprender com videos no youtube, mais segue em anexo o arquivo XML(txt) e copia do exemplo de como o vba tem de organizar os dados do XML. se puder olha agradeço desde já.
Raygsson escreveu: Dom Nov 21, 2021 6:09 pm O script base está ai, pra um exemplo melhor anexe o seu arquivo(tem que zipar).
Anexos
XML e exemplo.rar
(93.84 KiB) Baixado 128 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder