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

Capturar Tabela da Web com VBA (não funcionou)

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.
Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mathmatic »

Senhores,

estou tentando "aprender" como "Capturar" informações diretas da Web com o Excel usando VBA.

já fiz algumas pesquisas, e estou "caminhando" lentamente.

encontrei o seguinte Link que me interessou muitíssimo : http://www.blogarama.com/software-blogs ... -desde-web

o mesmo "ensina"/mostra como Capturar tabelas via VBA do seguinte Site de busca: https://es.investing.com/indices/spain-35-components

Tentei usar o código VBA ali mencionado, mas não está funcionando como diz no Link que deveria funcionar, ou seja, não está "Capturando" a tabela mencionada no Link.

por isso venho até aos senhores buscar ajuda. Como lhes disse no inicio, estou tentando aprender, e por isso não tenho conhecimento para saber o "Por Que" que o cód. VBA do Link não está Capturando corretamente a tabela mencionada.

Poderiam me ajudar com esse cód. VBA do Link, talvez está faltando alguma informação no código VBA ???


agradeço desde já aos senhores,


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: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mikel Silveira Fraga »

Mathmatic, boa noite.

Bem, copiei o código do site indicado e testei aqui. Tive que fazer algumas alterações, devido estrutura da planilha em si como: alterar no código o nome da planilha (de IBEX35 para Plan1) e declarar o Objeto Celda que não estava declarado.

Consegue informar em que linha esta ocorrendo o erro em seus testes?

Fico no aguardo de um retorno.


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mathmatic »

Saudações sr. Mikel,

o senhor poderia por favor Anexar um modelo da sua planilha que você fez o teste com o código do Link e funcionou.

sendo assim eu entrarei no projeto VBA da sua planilha e pegarei o código VBA "reformulado" conforme comentou que fez as reformulações.

então creio eu que usando o seu código reformulado funcionará para mim também.


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mathmatic »

sr. Mikel,

em Anexo está a planilha com o cód. VBA que estou usando (MAS Não Funcionou) !

se puder fazer os ajustes e anexá-la novamente, serei muito agradecido.

Obs: estou usando Excel 2007
Anexos
Importar Tabela.rar
(9.41 KiB) Baixado 325 vezes


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: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mikel Silveira Fraga »

Mathmatic, boa tarde.

Bem, existem algumas situações que você precisa fazer, para acertar o código:
1º) No teste de carregamento da página, altere o valor de IE.readyState <> READYSTATE_COMPLETE para IE.readyState = READYSTATE_COMPLETE;

2º) Ative a referência do Microsoft Internet Control, no menu: Ferramentas/Referência/ e ative a biblioteca Microsoft Internet Control;

3º) Na declaração do objeto IE, altere de Dim IE As Object para Dim IE As InternetExplorer.

Com essas alterações, você irá conseguir fazer rodar a rotina.

Dúvidas, estou a disposição.


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mathmatic »

sr.Mikel,

Fiz as alterações/inclusões que o senhor sugeriu (só não encontrei a biblioteca Microsoft Internet Control)

Resultado: ainda Não Funcionou, e apresentou "erro" na seguinte Linha:

Set elemCollection = IE.Document.getElementById("cr1")

Obs1: se o senhor puder me explicar os elementos desta Linha, agradeço muito.

Obs2: segue novamente a planilha em anexo, agora com as modificações sugeridas (menos a tal da biblioteca).

Pode verificar por favor por que não funcionou ?
Anexos
Importar Tabela.rar
(10.72 KiB) Baixado 303 vezes


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: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mikel Silveira Fraga »

Mathmatic, boa noite.

Veja se esse modelo irá funcionar. Nele, a referência do Microsoft Internet Control já esta habilitada e pronta pra uso.
Importar Tabela.zip
Alterado por: Mikel S Fraga
(14.26 KiB) Baixado 378 vezes
Sobre a explicação, posso tentar, mas já vou adiantando uma coisa: se quiser realizar manipulação entre VBA e Web, é extremamente necessário ter um bom conhecimento sobre os Elementos Html, que define a estrutura de uma página web.

Em relação a linha que ocorreu o erro, ocorre o seguinte:
- Foi criado o objeto elemCollection, que deve ser iniciado com o comando Set. Então, Set elemCollection, seria a atribuição/inicialização do objeto;
- Quando apontamos a criação desse objeto para IE.Document.getElementById("cr1"), ele esta assumindo as características do elemento que possui o Atributo Id igual "cr1". Funciona igual as Propriedades VBA Name, por exemplo. O método getElementById, é utilizado para identificar um elemento Html (por exemplo, Table, Span, Body, etc), através do Atributo Id, definido pelo desenvolvedor do site pesquisado.

Aconselho a estudar um pouco da estrutura de Html, pois vai ajudar muito em seus estudos.

Dúvidas, a disposição.


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mathmatic »

sr. Mikel,

o seu modelo faz o seguinte ( que também fazia o meu modelo) :

abre corretamente a página Web onde está a Tabela de busca, mas Não "carrega" a tabela no Excel.
Fica apenas a página aberta sem "inserir" a tabela de busca (informações) no Excel.

- Será que não é alguma coisa referente ao meu Internet Explorer ?

- Se tentarmos pelo Chrome (pois também tenho o Google Chrome) no meu PC, será que teríamos maior sucesso ?

Se o senhor achar que sim, pode encaminhar o modelo da planilha para "Buscar" então pelo Chrome por favor .


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: Capturar Tabela da Web com VBA (não funcionou)

Mensagem por Mikel Silveira Fraga »

Mathmatic, boa noite.

Bem, se o código que te passei não funcionou ai, acredito que o problema pode ser então problema/lentidão de conexão.

Em termos de recursos nativos, a unica forma de fazer a interação entre VBA x Web, seria utilizando essa biblioteca Microsoft Internet Control. Agora, usar no Chrome ou qualquer outro navegado, ai teria que partir para o uso de outra biblioteca, não nativa no VBA. Essa biblioteca se chama Selenium Basic.

Aqui no fórum tem muita coisa sobre o uso desta biblioteca. Acredito que vai ajudar muito.

Espero que ajude nos seus 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