Boa Tarde Amigos,
Estou fazendo um trabalho para extrair dados na web, e baixei alguns códigos para entender como funciona o processo.
Porem quando o código vai inserir a informação no campo de busca gera do site aparece um erro de permissão negada cod. 70. o curioso e que antes de instalar o win 10 e ofice 16 o código funcionava corretamente agora não consigo mais fazer funcionar. Alguém poderia me ajudar.
Abaixo o código que estou testando.
Sub lReferenciaIE() 'Inclui referência ao Microsoft Internet Controls
Dim ObRef
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
End Sub
Sub lsPesquisar()
'Inclui a referência se não houver, deve ativar o microsoft internet controle e a biblioteca 2.0
lReferenciaIE
Dim IE As InternetExplorer
Dim lCodigo As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
lUltimaLinhaAtiva = Worksheets("Planilha1").Cells(Worksheets("Planilha1").Rows.Count, 1).End(xlUp).Row 'Identifica a última célula ativa da lista
Set IE = CreateObject("internetexplorer.application")
Set IE = New InternetExplorer 'Cria um objeto Internet Explorer
IE.Visible = True 'Torna o objeto visível, vocês podem deixar como false e fará tudo em background
For lContador = 2 To lUltimaLinhaAtiva 'Faz um loop por todas as linhas da planilha
IE.Navigate "https://br.financas.yahoo.com/lookup" 'Navega ao site
While IE.ReadyState <> READYSTATE_COMPLETE 'Identifica se a página já foi totalmente carregada
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 + 3 > Timer
Loop
lCodigo = Range("A" & lContador).Value 'Carrega os dados da AÇÃO que serão preenchidos na página
IE.Document.all("txtQuotes").Value = lCodigo 'DOCUMENT.ALL() Identifica o ID do objeto, nesse caso é o ID do input no navegador onde eu vou submeter os valores no campo.
IE.Document.all("btnQuotes").Click 'Aqui será o botão que será submetido para enviar os dados de busca no navegador, mesmo coisa no comentário de cima
While IE.ReadyState <> READYSTATE_COMPLETE 'Identifica se a página já foi totalmente carregada
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 + 3 > Timer
Loop
'Faz um loop pelos objetos do tipo table na página e procura pelo campo preenchido.
'Em seguida busca pela segunda coluna da linha e armazena esta informação diretamente na coluna B à E da linha da planilha
For Each i In IE.Document.body.getElementsByTagName("div")
If InStr(i.innerText, "Fechamento ant.:") > 0 Then
For Each l In i.getElementsByTagName("div")
On Error Resume Next 'Aqui Prevenimos qualquer tipo de erro de objeto inconveniente
If InStr(l.innerText, lCodigo) Then
Range("B" & lContador).Value = l.getElementsByTagName("td")(0).innerText
Range("C" & lContador).Value = l.getElementsByTagName("td")(1).innerText
Range("D" & lContador).Value = l.getElementsByTagName("td")(2).innerText
Range("E" & lContador).Value = l.getElementsByTagName("td")(3).innerText
End If
Next l
End If
Next i
Next lContador
MsgBox "Concluído!"
IE.Quit
Set IE = Nothing
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
VBA não consegue inserir dados no IE
-
- Colaborador
- Mensagens: 10
- Registrado em: Sex Nov 25, 2016 5:14 pm
Re: VBA não consegue inserir dados no IE
ajccesar_filho,
Voce por aqui? O problema ainda persiste ou mudou em definitivo para o Selenium?
Att
Voce por aqui? O problema ainda persiste ou mudou em definitivo para o Selenium?
Att