Macros de Importaçã...
 
Notifications
Clear all

Macros de Importação da WEB

7 Posts
2 Usuários
0 Reactions
1,531 Visualizações
(@jonaskilmes)
Posts: 3
Active Member
Topic starter
 

Boa tarde a todos.

Galera, estou com o seguinte problema:

Tenho uma macro em excel para importar dados na web, mas preciso que esta macro altere parte da url.

Como o link da web é modificado todo dia, precisaria saber se é possível realizar a modificação do URL na macro diariamente!!

inserir algo para que o próprio usuário modifique o link através de uma caixa ou algo do tipo??

Ex.: Hoje tenho o seguinte link: http://www.uol.com.br/ 141515_550.asp

Amanhã vou ter o seguinte link: http://www.uol.com.br/ 141516_550.asp

e por isso que gostaria de alterar, porque sempre estaria puxando a msm planilha do msm link.

com essa mudança so gostaria de alterar os ultimos numeros do link!

Obg

Jonas

 
Postado : 01/08/2012 12:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Crie uma tabela relacional: liste as datas e as urls correspondentes ao lado. Depois mate via procv a partir da comparação com a função HOJE().

Abs,

 
Postado : 01/08/2012 3:15 pm
(@jonaskilmes)
Posts: 3
Active Member
Topic starter
 

Primeiramente Obrigado pelo retorno!

Só que tem um problema Brother, eu não sei os links pois eles são gerados dia após dia!!

eu criei uma macro para executar uma importação de dados da web, não teria como somente alterar essa parte dos links inserindo uma caixa de texto através do VBA, para que o usuário pudesse digitar manualmente?

por exemplo no código abaixo o botao irá importar os dados da web desse link especifico, porém como ele é modificado todos os dias, seria possível alterar somente essa parte que foi destacada no link?

Range("E5").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL; http://www.anbima.com.br/res_550/resultados/ 20120801_550.asp", _
Destination:=Range("$E$5"))
.Name = "20120801_550"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "4"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

Obrigado!!

Jonas

 
Postado : 01/08/2012 3:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desculpe mas vc sabe SIM os links para cada dia.Esse 20120801 é justamente o dia que vc está fazendo a consulta. Ora, se vc aplicar a fórmula->

=TEXTO(ANO(HOJE());"0000")&TEXTO(MÊS(HOJE());"00")&TEXTO(DIA(HOJE());"00") vc sempre trará a tabela do dia - no exemplo acima a tabela de ontem, 1o de agosto de 2012.

Pense nisso;

Abs,

 
Postado : 02/08/2012 6:38 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde,

Veja se é isso:

Sub Consulta()
    Dim Codigo As String
    
    Codigo = Year(Date) & Format(Month(Date), "00") & Format(Day(Date), "00")
    
    Range("E5").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://www.anbima.com.br/res_550/resultados/" & Codigo & "_550.asp", _
    Destination:=Range("$E$5"))
    .Name = Codigo & "_550"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "4"
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
    End With
End Sub

Abraço

 
Postado : 03/08/2012 10:13 am
(@jonaskilmes)
Posts: 3
Active Member
Topic starter
 

Cara brilhou demais, era bem isso msm!

No caso o unico problema q eu tinha é msm essa parte do link, com relação as datas eh bem isso mesmo que precisava brother agora entendi o que vc fez!

colocou a variável codigo puxando a data e ela sendo modificada diretamente no link certo??

Muito obrigado brother!!

Só um pergunta como faço p agradecer esse post p vc??

Abraços

 
Postado : 03/08/2012 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Veja como agradecer e marcar como resolvido!!

viewtopic.php?f=7&t=3784

Att

 
Postado : 03/08/2012 2:36 pm