Ir para conteúdo
Fórum Script Brasil
  • 0

VBA internet


Guest --Renan --

Pergunta

Guest --Renan --

Galera, vejam se vocês conseguem me ajudar. Eu to tentando criar uma macro que puxe uma tabela de um site. O grande problema é q a URL desse site não muda independentemente do filtro q eu usar no site, contudo, a tabela muda, de acordo com o filtro q eu usar.

pra você terem uma idéia do que estou falando, aqui está os site:

http://www.agrolink.com.br/cotacoes/Cotacoes.aspx

consigo fazer a macro escolher o estado e as datas q eu quero, mas não consigo fazê-la copiar a tabela. Não tem como fazer pelo jeito convencional de importar por dentro do excel.

Alguém propõe uma solução?

Obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Amigo se entendi bem o seu problemas é bem simples de se resolver, veja este código:

Sub capDadosTable()
    
    Dim ie As Object
    Dim produto As String
    Dim cidade As String
    Dim formaPG, valor, data As String
    Dim tabela As Object
    Dim linha
    

'instancia um objeto do Internet Explorer e o torna visivel
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
  
'vai para a página que você quer capturar  
    ie.navigate "http://www.agrolink.com.br/cotacoes/Cotacoes.aspx"
    Do While ie.busy
    Loop

'seta a tabela onde estão as informações
    
    Set tabela = ie.document.all.tags("table")(1)
    
'para cada linha da tabla captura o valor das céluas e jogas nas variáveis

    For Each linha In tabela.all.tags("tr")
    
        produto = linha.all.tags("td")(0).innertext
        cidade = linha.all.tags("td")(1).innertext
        formaPG = linha.all.tags("td")(2).innertext
        valor = linha.all.tags("td")(3).innertext
        data = linha.all.tags("td")(4).innertext
        
        linha.MoveNext
    Next
    
End Sub

Agora é so salvas as informações capturadas onde você quiser.

Espero ter ajudado! ^_^

Abraço!

Jackson Raniel

Link para o comentário
Compartilhar em outros sites

  • 0
Achei a solução é só comentar a linha linha.MoveNext e o loop fica OK. :wacko:

Valeu!

Cara, essa não parece ser a solução mais elegante. Se entendi bem a sua dúvida basta que você troque isso:

For Each linha In tabela.all.tags("tr")

por isso:

For Each linha In tabela.all.tags("td")

e tudo se resolveria.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Em 13/11/2009 at 09:32, warcanjow disse:

 

Cara, essa não parece ser a solução mais elegante. Se entendi bem a sua dúvida basta que você troque isso:

 

For Each linha In tabela.all.tags("tr")

 

por isso:

 

For Each linha In tabela.all.tags("td")

 

e tudo se resolveria.

 

Abraços!

Boa noite,

 

   Estava testando o código e da erro nessa linha.   produto = linha.all.tags("td") (0).innertext

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...