Página 1 de 1

Declarar div pelo input

Enviado: Ter Abr 14, 2020 9:07 pm
por LuisOrtin
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>

Re: Declarar div pelo input

Enviado: Qui Abr 16, 2020 12:35 am
por LuisOrtin
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.

Re: Declarar div pelo input

Enviado: Sex Abr 17, 2020 12:11 pm
por LuisOrtin
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

Re: Declarar div pelo input

Enviado: Sex Abr 17, 2020 11:33 pm
por webmaster
YAY!!!

8-) 8-) 8-) 8-)