Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Interação de planilha com página na web - VBA

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Ezequiel079
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Jul 14, 2021 11:55 am
Contato:

Interação de planilha com página na web - VBA

Mensagem por Ezequiel079 »

Olá a todes!

Agradeço a oportunidade em poder usufruir do conhecimento compartilhado aqui, e espero poder contribuir também.

Vamos a minha questão.... Trabalho em um serviço da Assistência Social, ligado à prefeitura da cidade de São Paulo, e possuo um banco de dados com cerca de 1200 usuários, que neste consta nome completo, endereço, telefones, etc... Mas preciso consultar o número do Cadastro Único (NIS) desses usuários no site “meucadunico.cidadania.gov.br/meu_cadunico/”. Nesse site há uma captcha, então não consigo automatizar essa consulta por completo, consegui elaborar uma programação que agiliza essa consulta preenchendo os campos de “Nome do usuário” e “Nome da mãe do usuário”, mas não consigo faze-lo preencher o campo de “Data de Nascimento” e duas listas suspensas de “Cidade e Estado”.
Aqui neste fórum encontrei alguns tópicos que automatizam a abertura deste site em uma nova guia do navegador Opera (que é o que prefiro utilizar), mas há algo relacionado ao DirectX que impossibilita a criação de Objeto, o que por sua vez, impossibilita que minha programação converse com as caixas de texto neste navegador, logo tive que optar em utilizar o Internet Explorer.
Por fim, necessito conseguir agilizar o preenchimento do campo em formato de data e interagir com a caixa suspensa. Se houver algo para passar pelo captcha será ótimo também.
Segue o que já elaborei:

Sub CadUnico()

Sheets("Lista Geral").Select

Set ie = CreateObject("InternetExplorer.Application")
ie.navigate "https://meucadunico.cidadania.gov.br/meu_cadunico/"
ie.Visible = True

'Do While ie.busy And ie.readyState <> "READYSTATE_COMPLETE"
'DoEvents
'Loop

' Nome
ie.document.getElementsByTagName("input")(0).Value = Cells(2, 6).Value
'Mãe
ie.document.getElementsByTagName("input")(2).Value = Cells(2, 19).Value
'Nascimento
ie.document.getElementsByTagName("input")(8).Value = Cells(2, 18).Value
'Estado
'ie.document.getElementsByTagName("td")(0).Value = (35)

End Sub

Sub opera()

Sheets("Lista Geral").Select

Dim ie As String

ie = """C:\Users\Home\AppData\Local\Programs\Opera\launcher.exe"""

Shell (ie & " -url https://meucadunico.cidadania.gov.br/meu_cadunico/")

End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
NRAlbukas
Colaborador
Colaborador
Mensagens: 24
Registrado em: Qua Jun 16, 2021 12:10 pm
Contato:

Re: Interação de planilha com página na web - VBA

Mensagem por NRAlbukas »

Boa tarde Zequi! :mrgreen:

Sinceramente falando, a interação entre VBA e web não é uma das melhores, então geralmete sera dificil fazer qualquer coisa entre eles. Por isso geralmente opto por outras linguagens.

Mas ainda bem que tenho esses códigos VBA que colhem os dados do CNPJ no site da receita. Só descambar pro site desejado. ;)
Pegando_CNPJ_do_site_da_receita.zip
(23.52 KiB) Baixado 125 vezes
Tambem aconselho que dê uma olhada nesse tópico:
http://www.tomasvasquez.com.br/forum/vi ... php?t=7301

E nesses sites:
https://pedroabs.wordpress.com/2015/11/ ... rvico-web/
http://www.macoratti.net/08/06/aspn_cpt1.htm

Valew! :)


Avatar do usuário
NRAlbukas
Colaborador
Colaborador
Mensagens: 24
Registrado em: Qua Jun 16, 2021 12:10 pm
Contato:

Re: Interação de planilha com página na web - VBA

Mensagem por NRAlbukas »

Caso tenha conseguido sucesso em seu problema, favor colocar "[RESOLVIDO]" no título do tópico. ;)


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Interação de planilha com página na web - VBA

Mensagem por Raygsson »

Ezequiel

Seu problema é fácil de resolver visto que não precisa lidar com o Recaptha, se precisasse tbm seria possível porém teria que contratar um serviço web :o R$

Fiz um teste com Internet Explorer e constatei que esse site tem alguma incompatibilidade (provavelmente JavaScript) com esse navegador, quando seleciona o Estado não libera a opção pra escolher a Cidade, simplesmente não carrega. Testei manualmente e foi a mesma coisa.

Escolhi fazer pelo Chrome usando a biblioteca Selenium Basic, você pode aprender como instalar neste video .

Fora isso basta fazer os devidos ajustes na seleção de Estado e Cidade, sugiro selecionar pelo texto ou pelo valor, inclui exemplos dessas duas formas.

Existem apenas 27 opções de texto/valor para selecionar um estado, vai ser fácil mapear, porém na Cidade deve quebrar um pouco a cabeça pra selecionar se o texto da cidade na sua planilha não for idêntico ao texto no site. Deixar esse pequeno desafio pra vc :lol:

Código: Selecionar todos


Sub CadUnico()

Dim driver As New ChromeDriver

driver.Get "https://meucadunico.cidadania.gov.br/meu_cadunico/"

driver.FindElementById("nome").SendKeys ("Nome")
driver.FindElementById("datepicker1").SendKeys ("15/07/2021")
driver.FindElementById("mae").SendKeys ("Mãe")
driver.FindElementById("uf_ibge").AsSelect.SelectByValue (12)
driver.Wait (1000)
driver.FindElementById("p_ibge").AsSelect.SelectByText ("CRUZEIRO DO SUL")

End Sub

estado.JPG
estado.JPG (73.4 KiB) Exibido 2003 vezes
cidade.JPG
cidade.JPG (73.29 KiB) Exibido 2003 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Ezequiel079
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Jul 14, 2021 11:55 am
Contato:

Re: Interação de planilha com página na web - VBA

Mensagem por Ezequiel079 »

Raygsson escreveu: Qui Jul 15, 2021 11:27 pm Ezequiel

Seu problema é fácil de resolver visto que não precisa lidar com o Recaptha, se precisasse tbm seria possível porém teria que contratar um serviço web :o R$

Fiz um teste com Internet Explorer e constatei que esse site tem alguma incompatibilidade (provavelmente JavaScript) com esse navegador, quando seleciona o Estado não libera a opção pra escolher a Cidade, simplesmente não carrega. Testei manualmente e foi a mesma coisa.

Escolhi fazer pelo Chrome usando a biblioteca Selenium Basic, você pode aprender como instalar neste video .

Fora isso basta fazer os devidos ajustes na seleção de Estado e Cidade, sugiro selecionar pelo texto ou pelo valor, inclui exemplos dessas duas formas.

Existem apenas 27 opções de texto/valor para selecionar um estado, vai ser fácil mapear, porém na Cidade deve quebrar um pouco a cabeça pra selecionar se o texto da cidade na sua planilha não for idêntico ao texto no site. Deixar esse pequeno desafio pra vc :lol:

Código: Selecionar todos


Sub CadUnico()

Dim driver As New ChromeDriver

driver.Get "https://meucadunico.cidadania.gov.br/meu_cadunico/"

driver.FindElementById("nome").SendKeys ("Nome")
driver.FindElementById("datepicker1").SendKeys ("15/07/2021")
driver.FindElementById("mae").SendKeys ("Mãe")
driver.FindElementById("uf_ibge").AsSelect.SelectByValue (12)
driver.Wait (1000)
driver.FindElementById("p_ibge").AsSelect.SelectByText ("CRUZEIRO DO SUL")

End Sub

estado.JPG

cidade.JPG
Raygsson, meu querido, tu não tem ideia da felicidade que me trouxe nessa sua resposta. Vou testar o quão antes, tô quebrando a cabeça uns bons meses com esse problema rsrs. Muito Obrigado pela atenção!!!!!!!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder