A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
Estou cirando um programa para poder automatizar a pesquisa do status do IRPF... porém, eu nao tenho muito conhecimento de HTML, na verdade nao sei nada sobre...
Pesquisando um pouco, consegui fazer o login no site da receita federal. e acessar a pagina que eu preciso pegar a informação, agora nao sei como fazer...
meu código para acessar o site está assim
Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim cpf, pass, codAce As String
Sub Login()
Dim oHTML_Element As IHTMLElement
Dim sURL As String
On Error GoTo Err_Clear
sURL = "https://cav.receita.fazenda.gov.br/autenticacao/login/index"
cpf = FormDados.txtCpf
codAce = FormDados.txtCodAce
pass = FormDados.txtPass
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.timeout = 60
oBrowser.Navigate sURL
oBrowser.Visible = True
Do
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = oBrowser.Document
HTMLDoc.all.NI.Value = cpf
HTMLDoc.all.CodigoAcesso.Value = codAce
HTMLDoc.all.Senha.Value = pass
For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
Next
sURL = "https://www3.cav.receita.fazenda.gov.br/extratodirpf/"
oBrowser.Navigate sURL
oBrowser.Visible = True
Err_Clear:
Resume Next
End Sub
E eu preciso que no Label lblStatus do meu formulário, apareça o Status da declaração de cada ano...
o Elemento que eu preciso é o que está na foto anexa.
Eu recomendo que você use o Selenium em conjunto com extensão ChroPath no Chrome ou no Firefox. Ela extrai o Xpath de cada elemento que precisar, e com isso fica mais fácil fazer o código.
Pelo que vi da imagem, você pode perceber que essa Span esta localizada dentro de uma árvore de elementos, sendo uma dela o Li (List Item) de um elemento UL (Lista Não Ordenada).
Essa Li possui um Atributo Id (id = menu_item_2020), que pode ser acessado utilizando o método getElementById. Depois que conseguir acessar esse elemento, pode utilizar a Propriedade innerText, para recuperar todo o texto que esta localizado no Status da página, no caso "2020 Não Entregue". Ai, é só tratar o 2020 com um Replace (Método para Substituição de Textos) e retornar esse valor para seu Label.
Essa seria a lógica do seu processo.
Porém, a sugestão do Nill, em utilizar o Selenium e as extensões, vão reduzir seu trabalho, tirando que Internet Control e Internet Explorer estão morrendo.
Uma dica a mais, eu não usaria as extensões para geração do xPath, mas sim estudaria como construí-las manualmente, pois as chances de conseguir um resultado muito mais assertivo e sem problemas futuros, é muito maior. Mas como disse, é só uma dica.
Espero ter ajudado. Abraços e excelente final de semana.