ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

[RESOLVIDO] - combobox dependente

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
aecduarte
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Fev 20, 2016 10:48 am

[RESOLVIDO] - combobox dependente

Mensagem por aecduarte » Dom Fev 21, 2016 8:47 pm

Prezados,

Estou montando uma macro para extrair dados da web. Nesse sentido, para extrair tais dados, é necessário:
1- Entrar no site "x" (etapa ok)
2- Selecionar dados em 5 combobox (parcial)
A macro está selecionado o dado na combobox mas há um problema: em uma delas há um evento onchange que está resolvido, no entanto, há algum evento ou função adicional que, ainda, não identifiquei.
Eu seleciono o dado da combobox nº 2 mas não atualiza a lista da combobox nº 3.

Alguma sugestão?

Sub x()
Dim ie As InternetExplorer
Dim C
redo:


Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://www.aneel.gov.br/aplicacoes/indi ... ?regiao=SU"

Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop


ie.Document.all("tipo").Value = "d" 'Dados

ie.Document.all("tipoE").Value = "c" 'Concessionárias
ie.Document.all("tipoE").FireEvent ("onchange")

ie.Document.all("distribuidora").Value = "396" 'seleciona a distribuidora
ie.Document.all("periodo").Value = "2015"
'ie.Document.All.Item("distribuidora").Item(1).Selected = True

ie.Document.getElementById("submit_obter_dados").Click

Set ie = Nothing

Att.,
Alberto - Extrair dados web.rar
macro
(13.61 KiB) Baixado 141 vezes
Editado pela última vez por aecduarte em Sex Mar 25, 2016 5:50 pm, em um total de 3 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.


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

Re: Web - combobox dependente

Mensagem por webmaster » Qui Mar 03, 2016 2:34 pm

Alberto,

Olhei muito por cima, mas, a simples mudanca no combo deveria disparar o onchange, sem a necessidade faze-lo manualmente. Pode ser um problema do site.

Tentou o Selenium?

Att


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: Web - combobox dependente

Mensagem por Mikel Silveira Fraga » Sex Mar 04, 2016 4:02 pm

Boa tarde a todos.

Tomás, a alguns dias atrás eu havia trocado uma MP com o Duarte sobre este problema. Já tinha passado pelo mesmo em um trabalho que fiz no ano passado, para uma empresa de Revenda da Telefonia e Internet.

Eu fiz um outro teste que foi atribuir o Elemento Select para um Objeto HtmlSelectElement da biblioteca Microsoft HTML Object, mas nesse caso me deparei com alguns erros de versão do Internet Explorer, onde alguns métodos funcionam em versões anteriores ao IE11.


Duarte, como disse o Tomás, acredito que utilizar o Selenium VBA seria a melhor opção. Veja as possibilidades do uso deste nas máquinas onde precisa rodar a rotina e nos retorne.

Se precisar de ajuda, estou no aguardo.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: Web - combobox dependente

Mensagem por Mikel Silveira Fraga » Sex Mar 11, 2016 1:52 pm

Boa tarde a todos.

Tomás, bingo. Sua sugestão estava certíssima. Montei a rotina e nem tive trabalho.

Duarte, utilizando o Selenium VBA, o acesso a esta rotina funcionou perfeitamente. Segue o código abaixo:

Código: Selecionar todos

Option Explicit

Dim swdBrowser As New SeleniumWrapper.WebDriver
Dim swsElement As SeleniumWrapper.Select

Sub x()

    With swdBrowser
    
        .Start "chrome", "http://www.aneel.gov.br/"
        .Open "aplicacoes/indicadores_de_qualidade/pesquisa.cfm?regiao=SU"
        
        .setImplicitWait 5000
        
        Set swsElement = .findElementByName("tipo")
        swsElement.selectByValue "d"
        .setImplicitWait 5000
        
        Set swsElement = .findElementByName("tipoE")
        swsElement.selectByValue "c"
        .setImplicitWait 5000
        
        Set swsElement = .findElementByName("distribuidora")
        swsElement.selectByValue "396"
        .setImplicitWait 5000
        
        Set swsElement = .findElementByName("periodo")
        swsElement.selectByValue "0"
        .setImplicitWait 5000
        
        Set swsElement = .findElementByName("ano")
        swsElement.selectByValue "2014"
        .setImplicitWait 5000

        .findElementById("submit_obter_dados").Click
        
    End With

End Sub
Para utilizar o Selenium, é interessantes dar uma olhada nos vídeos postados pelo Tomás sobre o uso dessa biblioteca. Seguem links abaixo:
- Fórum: viewtopic.php?f=23&t=4161
- Blog: http://www.tomasvasquez.com.br/blog/mic ... -webdriver
- YouTube: https://www.youtube.com/watch?v=hk-65p2 ... e=youtu.be

Veja se essa solução irá atender suas necessidades.

Qualquer dúvida, a disposição.

Abraços.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

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.


aecduarte
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Fev 20, 2016 10:48 am

Re: Web - combobox dependente

Mensagem por aecduarte » Sex Mar 25, 2016 3:44 pm

Muito obrigado Tomás e Mikel. Me ajudaram muito.
Realmente, a biblioteca do ie no vba não funciona muito bem e o Selenium é a saída. Muito bom o material do site sobre o selenium.
Pena que o plugin VBA/VBS Formatters parou de funcionar.

Duvida: Eu tive problema com a combobox "periodo". Aqui, ele não consegue selecionar a combobox com value=0, que é o caso do período. Em outras palavras, nesse caso, a combobox fica igual "escolha um periodo". Alguma sugestão? é possível selecionar pelo nome do Label? exemplo label=Anual;

Grato



Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: [RESOLVIDO] - combobox dependente

Mensagem por Mikel Silveira Fraga » Sáb Mar 26, 2016 10:28 am

Duarte, bom dia.

Cara, é possível sim selecionar a opção via o Texto/Label desejado.

Para fazer isso, substitua o comando swsElement.selectByValue, pelo comando swsElement.selectByText, e informe o texto desejado.

Teste e nos retorne com o resultado.

Excelente final de semana e Feliz Páscoa.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

aecduarte
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Fev 20, 2016 10:48 am

Re: [RESOLVIDO] - combobox dependente

Mensagem por aecduarte » Sáb Mar 26, 2016 12:27 pm

Perfeito! funcionou

Agora, travei na extração dos dados pelo selenium.

Tentei abrir a planilha "Selenium VBA - Busca CEP" mas retornou o seguinte erro " Não foi possível carregar um objeto porque ele não está disponivel nesta maquina"

Existe algum comando para retornar o conteúdo inteiro da página(nesse caso da popup que será aberta) e jogar direto no excel?

grato



Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: [RESOLVIDO] - combobox dependente

Mensagem por Mikel Silveira Fraga » Sáb Mar 26, 2016 12:37 pm

Duarte, boa tarde.

Dê uma olhada no tópico abaixo:
Office 32bits no Windows 64bits

Dúvidas, a disposição.

Abraços.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

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