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

[Resolvido] VBA para Importar intervalo de Dados da tabela Web

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

[Resolvido] VBA para Importar intervalo de Dados da tabela Web

Mensagem por Mathmatic »

Saudações amigos,

encontrei um ótimo código VBA para Importar Dados da Web para o Excel neste link aqui.

agora, eu desejo muito usar este mesmo código VBA do Link mencionado acima, para importar para o Excel os Dados da tabela: Historical Data (de 7 colunas) que está neste site aqui.

Se possível fosse, adaptar o código VBA do Link, para Importar os Dados da tabela do site com critério de intervalo de Mês/Ano à Mês/Ano.

Por exemplo:
Poder importar da tabela somente os Dados que vão de Fevereiro de 2020 até Setembro de 2019, ou seja, poder definir um intervalo de Período que vai de mês/ano à mês/ano, para importar dos Dados.

desde já agradeço a vossa ajuda.
Editado pela última vez por Mathmatic em Sáb Jul 25, 2020 1:36 pm, em um total de 1 vez.


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
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: ajustar VBA para Importar intervalo de Dados da tabela Web

Mensagem por webmaster »

Assim?

Código: Selecionar todos

'@Folder("VBAProject")
Option Explicit
 'reference to Microsoft Internet Controls
 'reference to Microsoft HTML Object Library

Sub Web_Table_Option_One()
Dim xml    As Object
Dim html   As Object
Dim objTable As Object
Dim result As String
Dim lRow As Long
Dim lngTable As Long
Dim lngRow As Long
Dim lngCol As Long
Dim ActRw As Long
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
With xml
.Open "GET", "https://finance.yahoo.com/quote/%5EGSPC/history?p=%5EGSPC#mrt-node-Col1-1-HistoricalDataTable", False
.send
End With
result = xml.responseText
Set html = CreateObject("htmlfile")
html.body.innerHTML = result
Set objTable = html.getElementsByTagName("table")
 For lngTable = 0 To objTable.Length - 1
        For lngRow = 0 To objTable(lngTable).Rows.Length - 1
            For lngCol = 0 To objTable(lngTable).Rows(lngRow).Cells.Length - 1
                ThisWorkbook.Sheets(1).Cells(ActRw + lngRow + 1, lngCol + 1) = objTable(lngTable).Rows(lngRow).Cells(lngCol).innerText
            Next lngCol
        Next lngRow
        ActRw = ActRw + objTable(lngTable).Rows.Length + 1
    Next lngTable
End Sub


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

Re: ajustar VBA para Importar intervalo de Dados da tabela Web

Mensagem por Mathmatic »

Saudações webmaster,

agradeço desde já por querer me ajudar . :)

apliquei o seu código modelo proposto (conforme planilha em anexo).

se observar, o código importou mais dados do que deveria importar.

a região que eu desejo importar está com preenchimento em "azul".

também seria muito bom conseguir importar somente uma parte da tabela, conforme mencionei anteriormente (critério com data inicial e data final para importar).
Anexos
Importar Tabela com criterio.rar
(22.97 KiB) Baixado 278 vezes


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

Re: ajustar VBA para Importar intervalo de Dados da tabela Web

Mensagem por webmaster »

Mathmatic,

O que fiz foi plantar a semente. O que pede é mais simples do que o primeiro tópico. Com um pouco mais de esforço, conseguirá o que quer :)


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