ATENÇÃO NOVOS USUÁRIOS
Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.
Esqueceu sua senha?
Você pode usar o mecanismo de lembrete neste link:
Recuperar senha
Você receberá um link de reativação no email cadastrado.
Não recebeu o email? Lembre-se checar o Lixo Eletrônico.
A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
-
LuisOrtin
- Colaborador

- Mensagens: 13
- Registrado em: Ter Mar 24, 2020 11:47 am
Mensagem
por LuisOrtin » Ter Abr 14, 2020 9:07 pm
Boa noite pessoal,
Estou concluido a minha macro e tenho a seguinte problema:
Na página que eu estou extraindo os dados possui varias "div class="accordion-item", igual ao modelo abaixo. Estou usando div class="accordion-item(0), div class="accordion-item(1)e sucessivamente. Ocorre que as vezes possui 5 divs as vezes seis. O que preciso saber se aguem possui um codigo para fixar ou atrelar a div class="accordion-item" ao algum dado do input (por exemplo id="accordion-classe-nice", pois devido esta variação os dados não ficam certo nas colunas.
Hoje uso assim: Set HTMLClass = HTMLDiv.getElementsByClassName("accordions")(0)
Código: Selecionar todos
div class="accordion-item">
<input type="checkbox" name="accordion" checked="checked" id="accordion-classe-nice">
<label for="accordion-classe-nice"><font class="titulo">Classificação de Produtos / Serviços</font>
<font class="normal">
<a class="normal" href="javascript:void(0)" onclick="DisableHide()">
</a>
</font>
</label>
<div class="accordion-content">
<table width="780px">
<thead>
<tr bgcolor="#b5d6ad">
<th width="110"><font class="normal">Classe de Nice</font></th>
<th width="230"><font class="normal">Situação da Classe</font></th>
<th width="440"><font class="normal">Especificação</font></th>
</tr>
</thead>
<tbody>

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.
-
LuisOrtin
- Colaborador

- Mensagens: 13
- Registrado em: Ter Mar 24, 2020 11:47 am
Mensagem
por LuisOrtin » Qui Abr 16, 2020 12:35 am
Boa noite pessoal,
Estou complementando meu pedido, pois com certeza não fui claro na minha solicitação . Peço desculpas por isso!
Segue uma print da estrutura da pagina que preciso raspar, sendo:
A página é dividido com varias tabelas e divs com mesmo nome, o que deferencia é este input que fica logo abaixo do class="accordion-item".
Hoje estou usando o codigo:
Set HTMLDoc = IE.document
Set HTMLDiv = HTMLDoc.getElementById("principal")
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (0)
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (1)
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (2)
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (3)
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (4)
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (5)
Porém as vezes dependendo da página, possui menos tabelas e/ou divs, não possuindo uma ordem de sua classificação.
No print que mandei possui este input que possui até id que fica logo abaixo do div class accordion-item.
O qure estou precisando é do código para definir estas divs e/ou tabelas de forma que fique fixa atrelando pelo id e não por estes números que informei (0), (1), etc.
Desculpem sou leigo, estou com dificuldade de fazer este código.
-
Anexos
-

- Html pagina.png (7.87 KiB) Exibido 4715 vezes
-
LuisOrtin
- Colaborador

- Mensagens: 13
- Registrado em: Ter Mar 24, 2020 11:47 am
Mensagem
por LuisOrtin » Sex Abr 17, 2020 12:11 pm
Olá pessoal, consegui após muitos testes rs.
De:
Código: Selecionar todos
Set HTMLDoc = IE.document
Set HTMLDiv = HTMLDoc.getElementById("principal")
Set HTMLClass = HTMLDiv.getElementsByClassName ("accordion-item") (0)
Para:
Código: Selecionar todos
Set HTMLDoc = IE.document
Set HTMLDiv = HTMLDoc.getElementById("principal")
Set HTMLClasses = HTMLDiv.getElementsByClassName ("accordion-item")
For Each HTMLClass In HTMLClasses
If HTMLClass.innerHTML Like ("*accordion-classe-nice*") Then
Declarei:
Dim HTMLTable As MSHTML.IHTMLElement
Dim HTMLClasses As MSHTML.IHTMLElementCollection

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.