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

Interação VBA com Internet Explorer (dúvidas)

Perguntas e Repostas sobre os artigos, posts e arquivos que são postados no site
davidemartinijr
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Jun 05, 2010 7:21 pm

Interação VBA com Internet Explorer (dúvidas)

Mensagem por davidemartinijr »

Prezados, preciso preencher um formulário da web com os dados do excel. Daí, como não tenho experiencia, baixei seu script da web e fiz algumas alterações:

Sub x()
Dim ie As InternetExplorer
Dim ULogin As Boolean, ieForm
Dim out_94 As Integer, nov_94 As Integer
out_94 = [A1]
nov_94 = [A2]
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://www010.dataprev.gov.br/cws/conte ... index.html"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
ie.document.all.("DD_2010_5").innerText = out_94
ie.document.all("DD_1994_11").innerText = nov_94
Set ie = Nothing
End Sub

Ele é muito bom, testei com outros sites e funcionou belezinha, porém, estou com uma dificuldade. O site acima está em html e o mesmo chama uma pagina asp (http://www010.dataprev.gov.br/cws/conte ... nicial.asp) no frame denominado principal. Dessa forma, o script não preenche a pagina html, mas, se eu substituir o ie.Navigate para a pagina asp, ele preenche normalmente. O problema é que, se eu chamar a página asp fora do html e pedir para calcular, o site da erro. Portanto eu precisaria da seguinte solução: Abrir a página html, porém preecher o formulário da página asp que está dentro do html.
Espero a ajuda de vocês e me desculpem pela falta de conhecimento.


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
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

David,

Creio que neste caso, o segredo seria capturar o frame a partir da página principal. O objeto document possui a propriedade frames que abriga os mesmos. Creio que o código abaixo deve funcionar:

Código: Selecionar todos

Sub x()
    Dim ie As InternetExplorer
    Dim ULogin As Boolean, ieForm
    Dim out_94 As Integer, nov_94 As Integer
    out_94 = [A1]
    nov_94 = [A2]
    Set ie = New InternetExplorer
    ie.Visible = True
    ie.Navigate "http://www010.dataprev.gov.br/cws/contexto/conrmi/index.html"
    Do Until ie.ReadyState = READYSTATE_COMPLETE
    Loop
    ie.Document.frames(0).Document.all("DD_2010_5").innerText = out_94
    ie.Document.frames(0).Document.all("DD_1994_11").innerText = nov_94
    Set ie = Nothing
End Sub
Abraços


davidemartinijr
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Jun 05, 2010 7:21 pm

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por davidemartinijr »

Tomás, INACREDITÁVEL.
DEU CERTINHO - MUITISSIMO OBRIGADO E PARABÉNS AO FORUM


thor28
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Ago 17, 2010 9:04 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por thor28 »

Sou novo na área e stou com dúvidas também. Na verdade não sei como a estrutura da página influencia no código. Por exemplo, eu gostaria de fazer um login na página "http://sicau.agu.gov.br/sicauweb/main.asp" e vendo o código temos: "document.forms[0].id_usuario.value = id_usuario" e "document.forms[0].te_senha"

O que eu fiz e não deu certo:

Sub Lanca_Dados()
Dim oWeb As Object

Set oWeb = CreateObject("InternetExplorer.Application")
oWeb.Navigate "http://sicau.agu.gov.br/sicauweb/main.asp"
oWeb.Visible = True

oWeb.Document.frames(0).Document.id_login.Value = InputBox("Digite seu Usuário: ", "Login - SICAU", "???")

End Sub


Se alguém puder me ajudar e me dizer onde está o erro e como funciona a estrutura de frames e forms no código eu agradeceria muito!! Obrigado!


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
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

Thor,

Tente isso:

Código: Selecionar todos

Sub Lanca_Dados()
    Dim oWeb As Object

    Set oWeb = CreateObject("InternetExplorer.Application")
    oWeb.Navigate "http://sicau.agu.gov.br/sicauweb/main.asp"
    oWeb.Visible = True
    
    Do Until oWeb.ReadyState = READYSTATE_COMPLETE
    Loop

    oWeb.Document.frames(1).Document.all("id_usuario").innerText = InputBox("Digite seu Usuário: ", "Login - SICAU", "???")
End Sub
Para ajustar o código, é preciso entender como está construído o HTML da página e suas considerações, frames, hierarquia, nomes dos campos, enfim. Só assim é possível capturar os elementos e interagir com eles.

Abraços


@ffonso
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Dom Ago 29, 2010 12:02 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por @ffonso »

Olá pessoal, boa noite!
Sou novo por aqui, e gostaria de parabenizá-los pela inciativa sobre esse tópico, pois é muito interessante.

Não sei bem por onde começar porque sou muuuuito iniciante, mas vamos lá:

Gostaria de entender como os dados são direcionados para os text box de uma página quanlquer da internet e achei que talvez o "esqueleto" do código do David possa me ajudar:

Gostaria de saber como aplicar nesse primeiro caso (código)
Sub x()
Dim ie As InternetExplorer
Dim ULogin As Boolean, ieForm
Dim out_94 As Integer, nov_94 As Integer
out_94 = [A1]------------------>vou deixar digitado em A1 meu nome de usuário "xxx@sercomtel.com.br"
nov_94 = [A2]------------------>vou deixar digitado em A2 a minha senha: yyy"
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "https://webmail.sercomtel.com.br/src/login.php"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
ie.document.all.("DD_2010_5").innerText = out_94--------------------->não entendi essa parte
ie.document.all("DD_1994_11").innerText = nov_94--------------------->não entendi essa parte
Set ie = Nothing
End Sub

E também nesse (código)


Sub Lanca_Dados()
Dim oWeb As Object

Set oWeb = CreateObject("InternetExplorer.Application")
oWeb.Navigate "https://webmail.sercomtel.com.br/src/login.php
oWeb.Visible = True

Do Until oWeb.ReadyState = READYSTATE_COMPLETE
Loop

oWeb.Document.frames(1).Document.all("id_usuario").innerText = InputBox("Digite seu Usuário: ", "Login - SSERCOMTEL", "???")
End Sub


Só que nesse caso eacho que será necessário outra linha onde será lançado a senha. Certo?

Pessoal desde j´muito obrigado


@ffonso
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Dom Ago 29, 2010 12:02 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por @ffonso »

Pessoal,
Estou quase chegando lá:

É quaaase assim:

Sub x()
Dim ie As internetexplorer
Dim C
'Dim ULogin As Boolean, ieForm---------------->posso retirar essa linha. certo?
Dim login_username As String, secretkey As String
redo:
login_username = Application.InputBox("Entre com seu login", "SERCOMTEL", Default:="xxx@sercomtel.com.br", Type:=2)
secretkey = Application.InputBox("Digite sua senha", "SERCOMTEL", Default:="yyy", Type:=2)
If login_username = "" Or secretkey = "" Then GoTo redo
Set ie = New internetexplorer
ie.Visible = True
ie.Navigate "https://webmail.sercomtel.com.br/src/login.php"

Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop

ie.document.all("login_username").innerText = login_username
ie.document.all("secretkey").innerText = secretkey

'ie.document.all("Submit").Click

'If ULogin = False Then MsgBox "Usuário logado"---------------->posso retirar essa linha. certo?
Set ie = Nothing
End Sub


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

Colega,

Ajudaria muito se disse o que exatamente quer fazer, fora o que já está escrito no título do tópico ok?

Abraços


@ffonso
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Dom Ago 29, 2010 12:02 am

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por @ffonso »

Olá Webmaster!
Gostaria de fazer o login na pagina: https://webmail.sercomtel.com.br/src/login.php a partir desse modelo de código citado.

Gostaria de entender como faz isso nos dois casos:

Primeiro:
Digamos que meu nome de usuário esteja em A1 e minha senha em A2 e quando executar a macro o meu nome de usuário seja capturado de A1 e A2 e vá para a pagina citada.

Segundo:
Gostaria de ver também com a utilização do inputbox onde eu poderia digitar o nome de usuário e a senha.

Obs: Para esse segundo caso eu quase consegui e só não estou conseguindo simular o click no botão Login. O código abaixo envia os dados para os campos Usuário e Senha, mas não está completando com o click no botão "Login"

Sub x()
Dim ie As InternetExplorer
Dim C
Dim ULogin As Boolean, ieForm
Dim MyPass As String, MyLogin As String
redo:
MyLogin = Application.InputBox("Por Favor entre com o Login", "Minha caixa de e-mails", Default:="xxx@sercomtel.com.br", Type:=2)
MyPass = Application.InputBox("Por favor entre com a senha", "Senha", Default:="yyy", Type:=2)
If MyLogin = "" Or MyPass = "" Then GoTo redo
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "https://webmail.sercomtel.com.br/src/login.php"

Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop

ie.document.all("login_username").innerText = MyLogin
ie.document.all("secretkey").innerText = MyPass
ie.document.all("Submit").Click

If ULogin = False Then MsgBox "Usuário logado"
Set ie = Nothing
End Sub


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Interação VBA com Internet Explorer (dúvidas)

Mensagem por webmaster »

Colega,

No caso da sua página, o botão de login não tem nome ou identificador (propriedade name ou id). Creio que você terá que forçar o Submit no form. Tente alterar a linha destacada para:

Código: Selecionar todos

ie.Document.Forms(0).Submit
Veja se funciona.

Abraços


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