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
                                                                                                	                                                
	                                         
                    
                    	
                            Postado : 11/07/2014 1:27 pm