Como Importar Cotações da B3 no Excel: Power Query 2025

Aprenda a importar cotações automáticas da B3 no Microsoft Excel usando Power Query e VBA. Tutorial completo para planilhas financeiras profissionais.

Categoria:Tutoriais e Integrações • Planilhas e Automação
7 min
Atualizado em:
Expertise: Automação de planilhas Excel - 8+ anos
Tags:
ExcelPower QueryVBAAutomaçãoPlanilhas

Neste artigo

Como Importar Cotações da B3 no Microsoft Excel

Aprenda a criar planilhas profissionais com cotações automáticas da B3 usando Power Query e VBA.

Publicado em 12 de Outubro de 2025

Por Que Excel para Investimentos?

O Microsoft Excel continua sendo uma das ferramentas mais populares para acompanhar investimentos. Com a integração da brapi.dev, você pode:

  • Importar cotações automáticas da B3
  • Atualizar dados com um clique
  • Criar dashboards profissionais
  • Fazer análises avançadas
  • Integrar com Power BI

Método 1: Power Query (Recomendado)

O Power Query permite importar dados JSON sem programação.

Passo a Passo

  1. Abra o Excel e vá para a guia Dados
  2. Clique em Obter Dados > De Outras Fontes > Da Web
  3. Insira a URL:
    https://brapi.dev/api/quote/PETR4?token=SEU_TOKEN
  4. Clique em OK
  5. O Power Query abrirá mostrando os dados JSON
  6. Clique em Converter > Para Tabela
  7. Expanda a coluna results clicando na seta dupla
  8. Selecione os campos que deseja (symbol, regularMarketPrice, etc.)
  9. Clique em Fechar e Carregar

Múltiplos Ativos

Para importar várias ações de uma vez:

https://brapi.dev/api/quote/PETR4,VALE3,ITUB4,BBDC4?token=SEU_TOKEN

Atualização Automática

  1. Clique com botão direito na tabela
  2. Selecione Atualizar
  3. Ou vá em Consultas e Conexões > Propriedades da Conexão
  4. Configure atualização automática:
    • ✅ Atualizar dados ao abrir o arquivo
    • ✅ Atualizar dados a cada X minutos

Exemplo de Estrutura

Após importar, sua tabela ficará assim:

symbolshortNameregularMarketPriceregularMarketChangePercentcurrency
PETR4PETROBRAS PN38.452.15BRL
VALE3VALE ON62.30-0.85BRL

Método 2: VBA Avançado

Para mais controle, use VBA (Visual Basic for Applications).

Código VBA Completo

Pressione Alt + F11 para abrir o editor VBA e cole:

' Requer biblioteca VBA-JSON: https://github.com/VBA-tools/VBA-JSON

Function GetBrapiQuote(ticker As String, Optional field As String = "regularMarketPrice") As Variant
    On Error GoTo ErrorHandler
    
    Dim http As Object
    Dim json As Object
    Dim token As String
    Dim url As String
    
    ' Configure seu token aqui ou em uma célula
    token = ThisWorkbook.Sheets("Config").Range("A1").Value
    
    ' Monta URL
    url = "https://brapi.dev/api/quote/" & ticker & "?token=" & token
    
    ' Faz requisição
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send
    
    ' Verifica resposta
    If http.Status = 200 Then
        Set json = JsonConverter.ParseJson(http.responseText)
        
        ' Retorna campo solicitado
        If field = "regularMarketPrice" Then
            GetBrapiQuote = json("results")(1)("regularMarketPrice")
        ElseIf field = "symbol" Then
            GetBrapiQuote = json("results")(1)("symbol")
        ElseIf field = "shortName" Then
            GetBrapiQuote = json("results")(1)("shortName")
        ElseIf field = "regularMarketChangePercent" Then
            GetBrapiQuote = json("results")(1)("regularMarketChangePercent")
        Else
            GetBrapiQuote = json("results")(1)(field)
        End If
    Else
        GetBrapiQuote = "Erro HTTP " & http.Status
    End If
    
    Exit Function
    
ErrorHandler:
    GetBrapiQuote = "Erro: " & Err.Description
End Function

' Sub para atualizar todas as cotações
Sub AtualizarCotacoes()
    Application.CalculateFull
    MsgBox "Cotações atualizadas!", vbInformation
End Sub

Biblioteca VBA-JSON

  1. Baixe VBA-JSON
  2. Importe o arquivo JsonConverter.bas no seu projeto VBA
  3. Em Ferramentas > Referências, ative "Microsoft Scripting Runtime"

Uso das Funções VBA

Na planilha:

=GetBrapiQuote("PETR4"; "regularMarketPrice")
=GetBrapiQuote("PETR4"; "shortName")
=GetBrapiQuote("PETR4"; "regularMarketChangePercent")

Estrutura Recomendada

Aba "Config":

AB
SEU_TOKEN_AQUIToken da API

Aba "Cotações":

A (Ticker)B (Nome)C (Preço)D (Variação %)
PETR4=GetBrapiQuote(A2;"shortName")=GetBrapiQuote(A2;"regularMarketPrice")=GetBrapiQuote(A2;"regularMarketChangePercent")

Método 3: Fórmulas Dinâmicas (Excel 365)

Se você tem Excel 365, pode usar fórmulas dinâmicas:

=FILTERXML(
    WEBSERVICE("https://brapi.dev/api/quote/PETR4?token=SEU_TOKEN"),
    "//regularMarketPrice"
)

Nota: Esta abordagem é limitada pois a API retorna JSON, não XML.

Dashboard Profissional

Estrutura de Abas

  1. Config - Token e configurações
  2. Cotações - Dados brutos atualizados
  3. Dashboard - Visualizações e gráficos
  4. Histórico - Registro de preços diários

Formatação Condicional

Para destacar variações:

  1. Selecione a coluna de variação percentual
  2. Formatação Condicional > Nova Regra
  3. Configure:
    • Verde se > 0
    • Vermelho se < 0

Gráficos Recomendados

  • Gráfico de Pizza: Distribuição da carteira
  • Gráfico de Barras: Performance por ativo
  • Gráfico de Linha: Evolução histórica

Botão de Atualização

Adicione um botão para atualizar dados:

  1. Guia Desenvolvedor > Inserir > Botão
  2. Desenhe o botão na planilha
  3. Atribua a macro AtualizarCotacoes

Código do botão:

Sub AtualizarTudo()
    ' Atualiza Power Query
    ActiveWorkbook.RefreshAll
    
    ' Atualiza fórmulas VBA
    Application.CalculateFull
    
    ' Atualiza timestamp
    ThisWorkbook.Sheets("Dashboard").Range("A1").Value = "Última atualização: " & Now()
    
    MsgBox "Dados atualizados!", vbInformation
End Sub

Salvando Histórico Automático

Sub SalvarHistorico()
    Dim wsOrigem As Worksheet
    Dim wsHistorico As Worksheet
    Dim ultimaLinha As Long
    
    Set wsOrigem = ThisWorkbook.Sheets("Cotações")
    Set wsHistorico = ThisWorkbook.Sheets("Histórico")
    
    ultimaLinha = wsHistorico.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    ' Copia dados com timestamp
    wsHistorico.Cells(ultimaLinha, 1).Value = Now()
    wsOrigem.Range("A2:D10").Copy wsHistorico.Cells(ultimaLinha, 2)
    
    MsgBox "Histórico salvo!", vbInformation
End Sub

Integração com Power BI

  1. No Power BI Desktop, clique em Obter Dados > Excel
  2. Selecione sua planilha Excel
  3. Importe as tabelas desejadas
  4. Configure atualização automática no Power BI Service

Dicas de Performance

1. Use Cache

Evite atualizar a cada célula recalculada:

' No início da função
Static cache As Object
Static cacheTime As Date

If DateDiff("s", cacheTime, Now()) < 60 Then
    ' Retorna do cache se menos de 60 segundos
    GetBrapiQuote = cache(ticker & "_" & field)
    Exit Function
End If

2. Desative Cálculo Automático

Para planilhas grandes:

  • Fórmulas > Opções de Cálculo > Manual
  • Use Ctrl+Alt+F9 para recalcular quando necessário

3. Use Tabelas

Converta ranges em tabelas (Ctrl+T) para melhor performance.

Exemplos Práticos

Carteira de Investimentos

TickerQuantidadePreço MédioPreço AtualLucro/Prejuízo%
PETR410035.00=GetBrapiQuote(A2)=(D2-C2)*B2=(D2-C2)/C2

Monitor de Mercado

Configure cores automáticas:

  • 🟢 Verde: Variação > 2%
  • 🟡 Amarelo: Variação entre -2% e 2%
  • 🔴 Vermelho: Variação < -2%

Troubleshooting

Erro: "Não é possível se conectar"

  • Verifique sua conexão com internet
  • Confirme que o token está correto

Erro: "Método não encontrado"

  • Instale a biblioteca VBA-JSON
  • Ative "Microsoft Scripting Runtime"

Dados não atualizam

  • Verifique se atualização automática está habilitada
  • Clique em "Atualizar Tudo" manualmente

Comparação: Excel vs Google Sheets

RecursoExcelGoogle Sheets
Power Query✅ Sim❌ Não
VBA✅ Sim❌ Apps Script
Offline✅ Sim❌ Não
Colaboração⚠️ Limitado✅ Excelente
Gratuito❌ Pago✅ Sim

Próximos Passos

Conclusão

O Excel é uma ferramenta poderosa para acompanhar investimentos. Com Power Query e VBA, você pode criar planilhas profissionais com dados sempre atualizados da B3.

Comece agora: Escolha o método que melhor se adequa às suas necessidades e crie sua planilha de investimentos!

Artigos Relacionados