Como ler dados de páginas da Web on-line com o Excel VBA

Compartilhe agora:

Este exercício mostra como ler dados de um site, neste caso taxas de câmbio atualizadas do Yahoo.com.

Supõe-se que o leitor tenha a faixa Desenvolvedor exibida e esteja familiarizado com o Editor VBA. Se não, por favor, Google “Excel Developer Tab” ou “Excel Code Window”.

Os pré-requisitos incluem conhecimento de preenchimento de caixas de combinação e definição de nomes.

A pasta de trabalho consiste em duas planilhas:

A interface do usuário:A interface do usuário

As caixas de combinação Comprar e Vender fazem referência à folha de dados local abaixo.

A tabela em D11 será colada automaticamente do próprio site, mantendo a formatação do usuário.Comprar e vender moedas

O xlsm para este exercício pode ser baixado aqui..

Construindo você mesmo o aplicativo.

Crie uma planilha com duas caixas de combinação. As caixas de combinação farão referência às células em uma segunda planilha.

As caixas de combinação também invocarão o código para ler o site, usando o Mudar evento.

Os nomes das moedas podem ser colados na segunda folha (“Moedas”) da lista abaixo, sendo a ordem de classificação uma questão de preferência pessoal:

ZAR
USD
EUR
GBP
CHF
AUD
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
EM R
CNY

Cole os dados nas colunas B e E.

Defina nomes e use funções de índice conforme a ilustração:Comprar e vender moedas

Uma vez que os nomes foram definidos na folha de dados local “Moedas”, a folha “Principal” refere-se apenas aos nomes definidos para obter o valor, ou seja, =VENDA e =COMPRA para as células “Principais” E10 e G10, respectivamente.

Estaremos programando o Excel para ler a web. Ele tem, no entanto, seu próprio processo integrado na faixa de opções Dados, uma instância da qual você pode querer registrar como uma macro na construção de diferentes cenários. Observe que as configurações do computador ou do navegador podem afetar adversamente os scripts de páginas da web.

O código

Insira um módulo e digite o seguinte:

Option Explicit

Sub Ticker()
  Dim currBuy As String
  Dim currSell As String

  Range("D11:F14").ClearContents      'prepare the ground for the web data
  currBuy = Range("BUY")          'get variable values from Defined Names previously set up
  currSell = Range("SELL")
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$11"))
    .Name = "q?s=" & currSell & currBuy & "=X"
    .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 = """table1"""
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End sub

Sub DropDown2_Change()    'This event will call the routine above. Object name might differ.
    Call Ticker
End Sub

Sub DropDown1_Change()
    Call Ticker
End Sub

Salve a pasta de trabalho como tipo xlsm.

Teste o código alterando os valores das caixas de combinação e melhore os formatos da tabela colada (quatro casas decimais, linhas de grade, sombreamentos?).

Corrupção de arquivos do Excel

Sabe-se que o Excel às vezes corrompe arquivos ao salvá-los, depois disso tenta sua própria rotina de auto-recuperação que, em minha experiência, simplesmente não funciona. Isso pode ser desastroso para o usuário, pois é o arquivo de origem (possivelmente sua única cópia) que é destruído. Arquivos Excel danificados no entanto, pode ser reparado usando ferramentas de terceiros, economizando tempo e esforço consideráveis.

Introdução do autor:

Felix Hooker é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar rar arquivo e produtos de software de recuperação SQL. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.