Jump to content

Marcio Fleming

Turma 54
  • Interações

    2
  • Entrou

  • Última visita

Tudo postado por Marcio Fleming

  1. Boa Tarde Pessoal, Quem analisa ações e FIIs sabe o quanto pode ser trabalhoso consultar, manualmente, indicadores financeiros em vários sites. Pensando nisso, desenvolvi uma função em VBA que permite buscar indicadores diretamente do Fundamentus, de forma automatizada, dentro do Excel. O que essa solução faz? Com apenas dois parâmetros - o ticker do ativo e o nome do indicador - a função: Acessa automaticamente a página do ativo no Fundamentus Varre as tabelas de indicadores Identifica o indicador desejado (de forma flexível) Retorna o valor diretamente para a célula do Excel Requisitos de bibliotecas VBA Microsoft XML (MSXML) Microsoft HTML Object Library Tudo isso usando VBA puro, sem complementos externos. Abaixo duas imagens de utilização e depois delas o código VBA para todos. Ações - exemplo FIIs - exemplo VBA - código Function BuscarIndicador(papel As String, nomeIndicador As String) As String Dim http As Object Dim html As Object Dim tds As Object Dim i As Long Dim url As String Dim textoCelula As String Dim indicadorProcurado As String ' Normaliza o indicador buscado indicadorProcurado = UCase(nomeIndicador) url = "https://www.fundamentus.com.br/detalhes.php?papel=" & papel ' Requisição HTTP Set http = CreateObject("MSXML2.XMLHTTP") http.Open "GET", url, False http.setRequestHeader "User-Agent", "Mozilla/5.0" http.send ' HTML Set html = CreateObject("HTMLFILE") html.body.innerHTML = http.responseText ' Todas as <td> Set tds = html.getElementsByTagName("td") For i = 0 To tds.Length - 2 ' Limpa texto da célula textoCelula = tds(i).innerText textoCelula = Replace(textoCelula, Chr(160), " ") textoCelula = Trim(UCase(textoCelula)) ' Comparação flexível If textoCelula Like "*" & indicadorProcurado & "*" Then BuscarIndicador = Trim(tds(i + 1).innerText) Exit Function End If Next i BuscarIndicador = "Não encontrado" End Function Espero que ajude e se quiser saber mais, sugerir adicionar algum outro indicador ou quiser um arquivo nativo comenta aqui.
×
×
  • Criar novo...