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

Interação VBA com Internet Explorer (dúvidas)

Perguntas e Repostas sobre os artigos, posts e arquivos que são postados no site
Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

Acho que devia ter usado o Google translator, mas isso significa que funcionou?

:D


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.


DomSimão
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Mai 17, 2012 8:15 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por DomSimão »

Na mouche é uma expressão Portuguesa que significa Em Cheio.
Funciona que é uma maravilha. Mais uma vez obrigado.


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

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

Sabia que devia ter pesquisado... hehehe!

Abraços


bravoc
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Ter Ago 28, 2012 10:18 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por bravoc »

Bom dia a todos! Eu lí todo o tópico e não consegui encontrar nada que me auxiliasse no meu problema. Tenho uma rotina que "pega" dados de uma tabela. Ela funciona perfeitamente quando utilizo a URL "http://www.bmfbovespa.com.br/pt-br/merc ... dCVM=20800", porém quando altero este endereço para "http://www.bmfbovespa.com.br/Cias-Lista ... ioma=pt-br" aparece uma mensagem "A variável do objeto ou a variável do bloco With não foi definida". Alguém sabe o motivo? Segue a rotina alterada.

Sub Dados()
Dim doc As Object
Set doc = CreateObject("HTMLFile")
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://www.bmfbovespa.com.br/Cias-Lista ... ioma=pt-br"
.send
Do: DoEvents: Loop Until .ReadyState = 4
doc.body.innerHTML = .responseText
.abort
End With

With doc.getElementsByTagName("Table")(2)
Sheets(2).Range("h3").Value = .Rows(0).Cells(1).outerText
Sheets(2).Range("h4").Value = .Rows(0).Cells(2).outerText
End With
End Sub


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.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Mikel Silveira Fraga »

Boa noite a todos.

Para os interessados no assunto, encontrei um site bem bacana dando explicações sobre como se trabalhar com a referëncia Microsoft Internet Controls.

http://officevbavsto.blogspot.com.br/se ... 20Internet

Valhe a pena dar uma verificada.

Abraço a todos.


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Guima »

TOmas e Colegas,

Estou querendo acessar o site do Registrobr e já transferir os dados da minha planilha para a página do registro. Porém, eu queria mais do que me dizerem como fazer, aprender como eu ídentificopara qual objeto da página eu devo enviar meus dados.

Valeu


Cl.Souza
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Sáb Abr 27, 2013 11:00 pm

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Cl.Souza »

Salve, Galera!

Li todo o post mas ainda tenho uma dúvida sobre como pesquisar dados em uma página em HTML. Estou tentando adaptar uma macro para realizar uma pesquisa em um site na intranet da empresa que trabalho (até aqui OK!). Após a pesquisa, se o dado pesquisado não constar na base de dados, o site retorna a informação "não existe contrato cadastrado", então como capturar esta informação e inseri-la no excel ?

A partir desta dúvida surgiu a seguinte: é possível uma macro pesquisar uma palavra em uma página em html, por exemplo realizar uma busca que retorne quantas vezes a palavra "Roma" aparece na pagina http://pt.wikipedia.org/wiki/Wikip%C3%A ... _principal

Agradeço se puderem me ajudar.

Valeu!


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Mikel Silveira Fraga »

Bom dia a todos.
Guima escreveu:TOmas e Colegas,

Estou querendo acessar o site do Registrobr e já transferir os dados da minha planilha para a página do registro. Porém, eu queria mais do que me dizerem como fazer, aprender como eu ídentificopara qual objeto da página eu devo enviar meus dados.

Valeu
Tem um recurso do InternetExplorer que pode lhe ajudar nisso.

1 - Abra o navegador;
2 - Aperte F12. Vai aparecer uma tela com o Código Fonte do site aberto;
3 - Nesta tela aperte Ctrl+B. Volte ao navegador e selecione o objeto (caixa de texto, botão, etc.);
4 - Na tela com os Códigos Fontes estará com o nome do objeto em destaque.

Espero que está dica possa ajudar.

Abraços.


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Guima »

Ola Mikel,

Mais uma vez voce me salvando meu caro. Principalmente porque queria muito aprender como descobrir o objeto

Acho que fiz corretamente, conforme orientou, mas o nome do objeto eu devo ter pego errado, ou então na estrutura do código. Posto ele abaixo para que possa me ajudar.

Código: Selecionar todos

Sub FREG()

Dim ie As InternetExplorer

Dim elem
Dim tbl
Dim tr

Set objIE = CreateObject("InternetExplorer.Application")

With objIE
 .StatusBar = False
 .Toolbar = False
 .Resizable = False
 .AddressBar = False
 .Visible = True
 .Navigate "https://registro.br/cgi-bin/whois/#lresp"
 Do While .Busy Or _
 .ReadyState <> 4
 DoEvents
 Loop
.Document.all.Item("input").Value = Sheets("BASE DE DADOS").Range("M1")

Set objIE = Nothing
End With
End Sub


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por Mikel Silveira Fraga »

Guima, boa noite.

Bem, encontrei alguns erros no seu código: o direcionamento do objeto e a declaração da variável InternetExplorer.

Primeiro, vamos ver o direcionamento do objeto da página.
Veja abaixo o código referente ao Site (HTML):

Código: Selecionar todos

<input name="qr" style="height: 25px; font-size: 12pt;" type="text" size="20" maxlength="50" value=""/>
O input, ao qual você se referiu, é na realidade uma instrução em HTML, utilizada para a criação de objetos de um formulário. Neste caso do type="text", ou Caixa de Texto.

Os objetos de um formulário HTML possuem dois tipos básicos de identificação: name ou id. Neste exemplo, ele esta utilizando apenas o name, então não podemos utilizar o comando Document.all.Item(), pois este é utilizado de forma generalizada e a identificação utilizada é o id.

Para resolver o seu problema é preciso realizar o direcionamento da busca pelo name do objeto. Para isso vamos utilizar o seguinte comando:

Código: Selecionar todos

.Document.getElementsByName("qr").Item.InnerText = Sheets("BASE DE DADOS").Range("M1")
Como estamos direcionando para o name, então dentro das Aspas/Parênteses devemos colocar o name do objeto, neste caso o qr.


Agora vamos analisar a situação da declaração da variável:
Neste caso houve apenas uma falta de observação no código. Veja como foi declarada sua variável:

Código: Selecionar todos

Dim ie As InternetExplorer
Em vários pontos do código, ao invés de utilizar o nome da variável como ie, esta sendo utilizado objIE:

Código: Selecionar todos

Set objIE = CreateObject("InternetExplorer.Application")

With objIE

Set objIE = Nothing
Realizei as correções necessárias e testei. No meu notebook funcionou perfeitamente.

Uma outra dica: eu deixei a algumas mensagens atrás, neste mesmo tópico, um link falando sobre a integração de VBA + Internet Explorer.

De uma lida e não vai se arrepender. Somente depois de ler esse tópico e precisar utilizar esse tipo de comunicação, foi que comecei a entender melhor o funcionamento dessa união. Ter conhecimento básico de HTML ajuda um pouco, mas não é fundamental.

Abraços e bons estudos.


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