Ir para conteúdo
Fórum Script Brasil

hpedrollo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre hpedrollo

hpedrollo's Achievements

0

Reputação

  1. hpedrollo

    VBA Banco Central

    Prezados, boa tarde; Estou enfrentando problemas ao adaptar um código desta página para o que preciso; a idéia é um crawler que informe no site do Banco Central uma Data Incial (Coluna"A" da planilha), Data Final (Coluna"B" da planilha), submeta ao site, copie a resposte e cola na Coluna "C" da planilha; porém a macro parece não encontrar a referência "Data Inicial" na página do Banco Central; ela pára em "IE.Document.all("Data Inicial").innertext = lDataInicial" Alguma consegue? 'Inclui referência ao Microsoft Internet Controls Sub lReferenciaIE() Dim ObRef On Error Resume Next ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1 End Sub Sub lsPesquisarCEPFaixa() 'Inclui a referência se não houver lReferenciaIE Dim IE As InternetExplorer Dim lDataInicial As String Dim lDataFinal As String Dim lUltimaLinhaAtiva As Long Dim lContador As Long 'Identifica a última célula ativa da lista lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row 'Cria um objeto Internet Explorer Set IE = New InternetExplorer 'Torna o objeto visível IE.Visible = True 'Faz um loop por todas as linhas da planilha For lContador = 2 To lUltimaLinhaAtiva 'Navega ao site dos correios IE.Navigate "https://www.bcb.gov.br/?SELICDIARIOS" 'Identifica se a página já foi totalmente carregada While IE.ReadyState <> READYSTATE_COMPLETE Wend 'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário 'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade. 'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem 'mais rápida a execução. sng = Timer Do While sng + 1 > Timer Loop 'Carrega os dados de cidade e UF que serão preenchidos na página lDataFinal = Range("B" & lContador).Value lDataInicial = Range("A" & lContador).Value 'Carrega os dados de cidade e UF na página e submente os dados do formulário IE.Document.all("Data Inicial").innertext = lDataInicial IE.Document.all("Data Final").Value = lDataFinal IE.Document.forms("Geral").submit 'Identifica se a página já foi totalmente carregada While IE.ReadyState <> READYSTATE_COMPLETE Wend 'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário 'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade. 'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem 'mais rápida a execução. sng = Timer Do While sng + 1 > Timer Loop 'Faz um loop pelos objetos do tipo table na página e procura pelo campo Faixa(s) de CEP: preenchido. 'Em seguida busca pela segunda coluna da linha de faixa de CEP e armazena esta informação diretamente na coluna C da linha 'da planilha For Each i In IE.Document.body.getElementsByTagName("table") If InStr(i.innertext, "Taxa (%a.a.)") > 0 Then For Each l In i.getElementsByTagName("tr") If InStr(l.innertext, lDataInicial) Then Range("C" & lContador).Value = l.getElementsByTagName("td")(1).innertext End If Next l End If Next i Next lContador MsgBox "Concluído!" End Sub
×
×
  • Criar Novo...