- 26 Dez 2016 às 10:04
#18404
Galera bom dia,
Estou com o seguinte problema. Entro num Sistema Web aqui da empresa e preciso extrair inúmeros relatórios, então pensei em automatizar a extração de informação com VBA.
Como informei a página é em HTML, até ai tudo bem...
O problema é que nesta página há 3 controles DropDowns em JavaScript e os comandos '.selected' não funcionam.
Utilizei o comando abaixo para percorer todos os TagName "Span" e alterar o Value dele, visualmente na tela ele mostra os nomes corretos que deveria selecionar, porém qdo mando gerar o relatório ele diz que o campo é de preenchimento obrigatório, ou seja, ele não aceitou a seleção (não aceita que se force um nome dentro do DropDown).
Abaixo o Código do HTML:

Abaixo meu código:
Estou com o seguinte problema. Entro num Sistema Web aqui da empresa e preciso extrair inúmeros relatórios, então pensei em automatizar a extração de informação com VBA.
Como informei a página é em HTML, até ai tudo bem...
O problema é que nesta página há 3 controles DropDowns em JavaScript e os comandos '.selected' não funcionam.
Utilizei o comando abaixo para percorer todos os TagName "Span" e alterar o Value dele, visualmente na tela ele mostra os nomes corretos que deveria selecionar, porém qdo mando gerar o relatório ele diz que o campo é de preenchimento obrigatório, ou seja, ele não aceitou a seleção (não aceita que se force um nome dentro do DropDown).
Código: Selecionar todos
Alguem tem algum outro modo de manipular este tipo de controle?For Each OBJ_Master In IE.Document.getElementsByTagName("span")
If OBJ_Master.innerText Like "Selecione" Then
OBJ_Master.innerText = "CDL CUIABA"
Exit For
End If
Next OBJ_Master
Abaixo o Código do HTML:

Abaixo meu código:
Código: Selecionar todos
Sub Consulta_SGC2()
Dim IE As InternetExplorer
Dim Endereço As String
'Abrindo e logando no SGC2
Endereço = "https://sgc2.redetempo.com.br/report_associate_bills/new"
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate (Endereço)
'IE.Visible = True
While IE.ReadyState <> 4
Wend
SGC2.Show
On Error Resume Next
IE.Document.all("user_login").innerText = SGC2.TX_User.Text
IE.Document.all("user_password").innerText = SGC2.TX_PassWord.Text
For Each Button In IE.Document.getElementsByTagName("input")
Button.Click
Next
While IE.ReadyState <> 4
Wend
IE.Visible = True
'############################################################################################
'Até este ponto tudo funciona 100%
'Comando abaixo demonstra todos os itens dentro do DropDown.
'IE.Document.all.Item("report_master").outerHTML
Application.Wait DateAdd("s", 5, Now)
For Each OBJ_Master In IE.Document.getElementsByTagName("span")
If OBJ_Master.innerText Like "Selecione" Then
OBJ_Master.innerText = "CDL CUIABA"
Exit For
End If
Next OBJ_Master
Application.Wait DateAdd("s", 1, Now)
For Each OBJ_Distribuidor In IE.Document.getElementsByTagName("span")
If OBJ_Distribuidor.innerText Like "Selecione" Then
OBJ_Distribuidor.innerText = "CDL ALTA FLORESTA"
Exit For
End If
Next OBJ_Distribuidor
Application.Wait DateAdd("s", 1, Now)
For Each OBJ_Mes In IE.Document.getElementsByTagName("span")
If OBJ_Mes.innerText Like "Selecione" Then
OBJ_Mes.innerText = "Dezembro/2016"
Exit For
End If
Next OBJ_Mes
Application.Wait DateAdd("s", 1, Now)
For Each Button In IE.Document.getElementsByTagName("button")
Button.Click
Next
IE.Visible = True
Unload SGC2
End Sub