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

Declarar div pelo input

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
Colaborador
Mensagens: 13
Registrado em: Ter Mar 24, 2020 11:47 am

Declarar div pelo input

Mensagem 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>


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.


LuisOrtin
Colaborador
Colaborador
Mensagens: 13
Registrado em: Ter Mar 24, 2020 11:47 am

Re: Declarar div pelo input

Mensagem 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.
Anexos
Html pagina.png
Html pagina.png (7.87 KiB) Exibido 6611 vezes


LuisOrtin
Colaborador
Colaborador
Mensagens: 13
Registrado em: Ter Mar 24, 2020 11:47 am

Re: Declarar div pelo input

Mensagem 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


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Declarar div pelo input

Mensagem por webmaster »

YAY!!!

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


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