Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por genebaldo
#25420
Pessoal, boa noite!

Por gentileza poderiam me ajudar num código vba excel que faz consultas em lote no site do mda a partir de um código de uma planilha?
O código envolve list box para escolher a UF (state) radiobox para marcar sim ou não para contribuinte icms e text box para digitar o código do produto (produto code) clicar no botão avançar e trazer a consulta para outra planilha da mesma pasta de trabalho e de possível fazer consultas em lote e copiar os resultados da consulta para a planilha.
Até agora conseguir , a selecionar a UF, fazer com que a macro marcasse a radiobox com a opção sim para icms, preencher o código mda, porém não consigido clicar no botao avançar e fazer os demais procedimentos. Segue código :

'Inclui referência ao Microsoft Internet Controls
Sub lReferenciaIE()
Dim ObRef
On Error Resume Next

ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
End Sub
Sub lConsultaMDA()
'Inclui a referência se não houver
lReferenciaIE

Dim IE As InternetExplorer
Dim ICódigoMDA As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long

'Identifica a última célula ativa da lista

lUltimaLinhaAtiva = Worksheets("Coordenadas").Cells(Worksheets("Coordenadas").Rows.Count, 1).End(xlUp).Row

'Cria um objeto Internet Explorer
Set IE = New InternetExplorer

'Torna o objeto visível
IE.Visible = True

'Faz um loop por todas as linhas da planilha
For lContador = 2 To lUltimaLinhaAtiva
'Navega ao site do MDA
IE.Navigate "http://portal.mda.gov.br/portal/saf/maisalimentos/"

'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop

'Carrega os dados de cidade de origem e destino que serão preenchidos na página

lCódigoMDA = Range("D" & lContador).Value
lAddPolygo2 = Range("E" & lContador).Value


'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop

'Seleciona a UF que será preenchidos na página

IE.Document.all("state").Value = "DF" 'Estado

While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop

'Seleciona sim para ICMS

IE.Document.all("taxpayer").Item(0).Checked = True

While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop

'Carrega os dados de cidade de origem e destino na página e submente os dados do formulário
IE.Document.all("product_code").Value = lCódigoMDA
IE.Document.forms("Avançar").submit


'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend


'For Each i In IE.Document.body.getElementsById("CódigoMDA")
'If InStr(i.innertext, "CódigoMDA") > 0 Then
'For Each l In i.getElementsById("input")
'If InStr(l.innertext, lAddPolygon2) Then
Range("E" & lContador).Value = l.getElementsByTagName("Add Polygon 2")(1).innertext
'End If
'Next l
'End If
'Next i
Next lContador

MsgBox "Concluído!"
End Sub


Muito obrigado, desde já!

Segue também código fonte da página:
<form id="products" name="products" method="post" action="search">
<h4><span class="numero">1</span> Escolha o estado:</h4>
<p>
<select name="state" style="width:60px;">
<option value="AC">AC</option><option value="AL">AL</option><option value="AP">AP</option><option value="AM">AM</option><option value="BA">BA</option><option value="CE">CE</option><option value="DF">DF</option><option value="GO">GO</option><option value="ES">ES</option><option value="MA">MA</option><option value="MT">MT</option><option value="MS">MS</option><option value="MG">MG</option><option value="PA">PA</option><option value="PB">PB</option><option value="PR">PR</option><option value="PE">PE</option><option value="PI">PI</option><option value="RJ">RJ</option><option value="RN">RN</option><option value="RS">RS</option><option value="RO">RO</option><option value="RR">RR</option><option value="SP">SP</option><option value="SC">SC</option><option value="SE">SE</option><option value="TO">TO</option>
</select>
</p>

<h4><span class="numero">2</span> É contibuinte do ICMS?</h4>
<div id="obrigatorio_contribuicao_icms" style="width:100%; background-color: #f8f984;">
<p><strong>Para continuar selecione uma opção</strong></p>
</div>
<div class="opcoes_contribuicao_icms">
<p><input name="taxpayer" type="radio" value="t" /> Sim ou <input name="taxpayer" type="radio" value="f" /> Não</p>
<div>
<img src="/resources/theme-zen/images/mais-alimentos/img_info_laranja2.gif" alt="" class="img_info_contribuicao_icms">
<p><strong>Contribuinte do ICMS:</strong><br>Você é cadastrado na Secretaria Estadual da Fazenda como produtor rural emitente de documento fiscal. </p>
<p><strong>Não-contribuinte do ICMS:</strong><br>Você não é cadastrado na Secretaria Estadual da Fazenda como produtor rural emitente de documento fiscal.</p>
</div>

</div>

<h4><span class="numero">3</span> Selecione a categoria de produtos:</h4>
<p>
<select name="category" style="width:450px;">
<option value="A">Motocultivador</option><option value="B">Trator</option><option value="C">Equipamentos/Implementos</option><option value="D">Irrigação</option><option value="E">Aves e Suinos</option><option value="F">Apicultura</option><option value="H">Pesca e Aquicultura</option><option value="I">Equipamentos para Armazenagem e Câmaras Frigoríficas</option><option value="J">Veículos de Transporte de Carga</option><option value="K">Equipamentos para Produção Primária do Leite</option><option value="L">Equipamentos para Produção Primária do Café</option><option value="M">Projeto de Financiamento Para Pessoa Jurídica</option><option value="N">Colheitadeiras</option><option value="T">Geração de Energia Solar Fotovoltaica</option>
</select>
</p>

<p class="button"><input id="icms_submit" type="submit" value="Avançar" /></p>
</form>

<div>
<form id="product_code_form" name="search" method="post" action="product">
<h4><span class="numero">Ou</span>, se ja sabe o código de algum produto, digite na caixa abaixo:</h4>
<div>
<input name="product_code" type="text" value="" />
</div>
<p class="button"><input type="submit" value="Avançar" /></p>
</form>
</div>


</div>
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#25519
Genebaldo
Bom dia,

Brother, tente adaptar ao teu código...
Código: Selecionar todos
For Each link In IE.Document.Links
If link.href = "http://portal.mda.gov.br/portal/saf/maisalimentos/product" Then link.Click
Next link
Por genebaldo
#25538
Wesley, boa noitw!
Tentei adaptar do jeito que sugeriu, porém a macro nao clicou no botao avançar.


'Carrega os dados de cidade de origem e destino na página e submente os dados do formulário
IE.Document.all("product_code").Value = lCódigoMDA
For Each link In IE.Document.Links
If link.href = "http://portal.mda.gov.br/portal/saf/mai ... os/product" Then link.Click
Next link
Será que preciso incluir o codigo abaixo antes do código que você sugeriu?

'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord