Logo Hardware.com.br
HiagoBriano
HiagoBriano Novo Membro Registrado
1 Mensagem 0 Curtidas

Macro Excel - Tabela do site

#1 Por HiagoBriano 02/04/2018 - 16:44
Olá,

Galera eu estou montando uma planilha no excel para acompanhar a bolsa de valores do mercado estrangeiro.

Enfim a primeira parte é puxar as informações do site (sim tem vários tutorias na internet), a questão que quando eu atualizo ele varia o local onde sai o resultado, dessa forma eu não consigo copiar para um outro campo.

Este é o site no qual estou querendo pegar as informações:

https://www.marketwatch.com/investing/stock/ibm


Estas são as informações que eu preciso:

Imagem



Se alguém souber uma forma de eu pegar só essas 16 informações sem pegar o “lixo” do site eu agradeço
Basole
Basole Geek Registrado
945 Mensagens 596 Curtidas
#3 Por Basole
02/04/2018 - 21:33
Importe os dados para uma aba temporária em seguida faça um find para encontrar o que deseja

Imagem

Exemplo:

[code=vb]
Sub Importar_Gdow()
Dim rng As Range
Dim arrMarket As Variant

arrMarket = Array("Dow", "S&P 500", "Nasdaq", "GlobalDow", "Gold", "Oil")

With Plan2
.Activate
.Cells.Clear
End With

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.marketwatch.com/investing/index/gdow", _
Destination:=Range("A1"))
.Name = "Balanco-Plan1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

With Plan1
.Range("A1big_green.png6").ClearContents

For i = LBound(arrMarket) To UBound(arrMarket)

Set rng = Plan2.Cells.Find(arrMarket(i))
If Not rng Is Nothing Then
For j = 0 To 3
.Cells(i + 1, j + 1).Value = rng.Offset(, j)
Next j
End If

Next i
End With
End Sub

[/code]
Click em Curtir se a resposta foi útil. boa.gif Dê retorno por favor. Se resolveu, atencao_regras.gif Altere o Titulo como [ Resolvido ] comemorando.gif
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal