Importação de dados...
 
Notifications
Clear all

Importação de dados Web

3 Posts
1 Usuários
0 Reactions
690 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Montei uma planilha com o intuito de importar dados da web a partir de um link:

A rotina ficou a seguinte:

Sub Update()
'
' Update Macro
'

'
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("A3:U1406").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-18
Range("A3").Select
With ActiveSheet.QueryTables.Add(Connection:="URL; https://www.google.com.br" _
, Destination:=Range("$A$3"))
.Name = "www.google.com.br"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-9
End Sub

Após isso, coloquei a URL https://www.google.com.br na célula A1 e queria que a rotina VBA utilizasse os dados dessa célula como referência para importação. Ou seja, se eu alterar o site da célula A1 a minha consulta retornaria essa outra página.

Tentei, sem sucesso, o seguinte:

Sub Update()
'
' Update Macro
'

'
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("A3:U1406").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-18
Range("A3").Select
With ActiveSheet.QueryTables.Add(Connection:="URL;Connection:=Range("A1") _
, Destination:=Range("$A$3"))
.Name = "www.google.com.br"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-9
End Sub

O que eu estou fazendo de errado?

Obrigado pela ajuda.

 
Postado : 17/10/2013 2:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Acrescente no inicio da rotina :

Sub Update()
Dim sUrl
sUrl = [A1]

E troque a linha :
With ActiveSheet.QueryTables.Add(Connection:="URL; https://www.google.com.br" _
, Destination:=Range("$A$3"))

Por esta:
With ActiveSheet.QueryTables.Add(Connection:="URL;" & sUrl _
, Destination:=Range("$A$3"))

[]s

 
Postado : 17/10/2013 6:55 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Muito Obrigado. Está funcionando perfeito.

 
Postado : 18/10/2013 8:29 am