Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Interação VBA com Internet Explorer (dúvidas)
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Sáb Jun 05, 2010 7:21 pm
Interação VBA com Internet Explorer (dúvidas)
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.
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.
Re: Interação VBA com Internet Explorer (dúvidas)
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:
Abraços
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
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Sáb Jun 05, 2010 7:21 pm
Re: Interação VBA com Internet Explorer (dúvidas)
Tomás, INACREDITÁVEL.
DEU CERTINHO - MUITISSIMO OBRIGADO E PARABÉNS AO FORUM
DEU CERTINHO - MUITISSIMO OBRIGADO E PARABÉNS AO FORUM
Re: Interação VBA com Internet Explorer (dúvidas)
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!
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!
Re: Interação VBA com Internet Explorer (dúvidas)
Thor,
Tente isso:
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
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
Abraços
Re: Interação VBA com Internet Explorer (dúvidas)
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
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
Re: Interação VBA com Internet Explorer (dúvidas)
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
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
Re: Interação VBA com Internet Explorer (dúvidas)
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
Ajudaria muito se disse o que exatamente quer fazer, fora o que já está escrito no título do tópico ok?
Abraços
Re: Interação VBA com Internet Explorer (dúvidas)
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
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
Re: Interação VBA com Internet Explorer (dúvidas)
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:
Veja se funciona.
Abraços
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
Abraços