Boa Tarde Amigos, sou iniciante em VBA.
Porém estou criando uma macro que faça o seguinte:
Tenho uma planilha com 1000 telefones, gostaria de fazer uma consulta neste site http://www.qualoperadora.net/ com cada linha da planilha, depois com isto eu pegaria a informação retornada do site e escreveria na coluna ao lado do telefone.
Até agora consegui fazer isto .
Public Sub ExemploBuscaGoogle() On Error Resume Next Dim i As Long Dim IE As Object Dim objElement As Object Dim objCollection As Object quebra = Chr(13) & Chr(10) Dim iArq As Long iArq = FreeFile Open "C:BrunoTeste.txt" For Output As iArq Print #iArq, quebra Print #iArq, "texto: simples" Close #iArq ' Cria instância do IE Set IE = CreateObject("InternetExplorer.Application") ' Define o endereço a ser carregado IE.navigate ("www.qualoperadora.net") ' Define se a janela do IE será ou não exibida IE.Visible = True ' Espera carregar. A espera aqui está definida para 1 segundo, ' mas pode ser ajustada dependendo da necessidade. Do While IE.Busy Application.Wait DateAdd("s", 1, Now) Loop ' Busca campos tipo input, uma vez que queremos acessar o campo de busca. ' Sabemos que o campo é tipo input porque analisamos o código HTML da página do Google. ' O método getElementByTagName retorna todas as TAGs HTML da página carregada com o nome desejado. Set objCollection = IE.document.getElementsByTagName("input") ' Varre os inputs do HTML procurando pelos elementos desejados ' Queremos encontrar o elemento input com name = "q" ' Uso o while aqui mas poderia usar o 'for each' i = 0 While i < objCollection.Length ' "q" é o nome do campo de busca, como visto no código HTML If objCollection(i).Name = "telefone" Then ' Preenche o campo de busca com o que queremos objCollection(i).Value = "11973482468" End If i = i + 1 Wend ' Após preenchermos o campo de pesquisa mandamos um 'enter' para o sistema. ' No método SendKeys o 'enter' é representado pelo símbolo ~ Application.SendKeys ("~") ' Esperamos novamente o IE carregar a página. ' Note que o codigo aqui realiza uma espera de 1 segundo ' mesmo sem verificar se o IE está ocupado. ' Isso é uma boa estratégia pois diversos sites passam por ' mais de uma janela após submeter informações ' a um formulário. Então a espera tenta garantir que a janela ' final esteja carregada. Application.Wait DateAdd("s", 1, Now) Do While IE.Busy Application.Wait DateAdd("s", 1, Now) Loop ' Agora temos que buscar o primeiro link do primeiro resultado. ' Novamente temos que analisar o HTML, agora da página de resultados. ' Buscamos as tags 'li' onde class = 'g' da página, pois é onde estão os resultados. ' Novamente, sabemos pela análise do HTML. Set objCollection2 = IE.document.getElementsByTagName("li") ' Dentre as tags 'li' buscamos a primeira com classe 'g' For Each elemento In objCollection2 ' "q" é o nome do campo de busca, como visto no código HTML If elemento.classname = "g" Then ' Mostra a msgbox com o texto do primeiro resultado MsgBox elemento.innertext Exit For End If Next ' Fecha a instância do IE End Sub
Boa tarde!!
Em quanato isso...
http://www.google.com.br/cse?cx=partner ... 0um%20site
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Fala Alexandre,
Já cheguei a ver alguns posts parecidos, porém não consegui cara ..
Abs
cada site tem um script diferente
tem que se estudar o funcionamento do script para se criar a instância de pesquisa e aquisição de dados.
o seu pedido não tem uma duvida individual e sim todo um contexto de funcionamento .
do jeito que está implícito o pedido, está mais para a area de oportunidade.
mesmo em um site simples igual a da loteria eu tive que adaptar a macro para os diferentes jogos e isso sendo o mesmo site
imagina algo como site de operadoras e ainda sendo tão diferentes.
tente focar em apenas uma operadora estude o script e tente ir aos poucos
essa não é uma questão simples de se resolver
uma simples busca no site pode pedir um enorme tempo de estudo e testes da macro até se conseguir o funcionamento desejado
mesmo em foruns estrangeiros vc vai ter que ter algo pronto e apenas parte da duvida do todo que vc quer solucionar.
Att.
Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.
"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"
Entendi ... obrigado pela explicação!
Alexandre, até o momento eu consegui fazer bastante coisa.
Estou com uma dúvida e creio que você posso me ajudar.
Preciso pegar o conteúdo de uma div de uma página do internet explorer.