none
VBA URGENTE PORFAVOR RRS feed

  • Pergunta

  • Presiso que ele faça isso nas demais linhas ele so esta fazendo na primeira cosultando o nome e trazendo so da linha um ele nao fecha a pagina e vai para a proxima linha se alguem puder me ajudar obrigado

    Public Sub ConectaWeb()
    On Error Resume Next
       
        Dim i As Long
       
        Dim IE As Object
        Dim objElement As Object
        Dim objCollection As Object
           
       
        ' Abre a página
        Set IE = CreateObject("InternetExplorer.Application")
        IE.navigate ("bradesco.com.br")
        IE.Visible = True
       
        ' Espera carregar...
        Do While IE.Busy
            Application.Wait DateAdd("s", 2, Now)
        Loop
       
        ' Busca campos tipo input (estamos querendo preencher um form com dados)
        Set objCollection = IE.document.getElementsByTagName("input")
        
       
        'Varre os inputs do HTML procurando pelos elementos desejados
        i = 0
        While i < objCollection.Length
           
            If objCollection(i).Name = "AGN" Then
                ' Define o objeto HTML com nome ANG com o valor da agência (precisar olhar o código HTML para saber esse nome)
                objCollection(i).Value = ThisWorkbook.Worksheets("Plan1").Range("A1")
            ElseIf objCollection(i).Name = "CTA" Then
                ' Número da conta corrente
                objCollection(i).Value = ThisWorkbook.Worksheets("Plan1").Range("B1")
            ElseIf objCollection(i).Name = "DIGCTA" Then
                ' Dígito da conta
                objCollection(i).Value = ThisWorkbook.Worksheets("Plan1").Range("C1")
            Else
                'Quando achar o objeto submit armazena no objeto
                If objCollection(i).Type = "submit" And objCollection(i).Name = "" Then
                    Set objElement = objCollection(i)
                End If
            End If
            i = i + 1
       
        Wend


        ' Clica o botão
        objElement.Click


        ' Espera carregar a outra página. A espera de 5 segundos é porque o site
        ' carrega uma página entre a tela de login e a tela final
        Application.Wait DateAdd("s", 5, Now)
        Do While IE.Busy
            Application.Wait DateAdd("s", 2, Now)
        Loop
       
       
        ' Agora busca o nome na próxima página
       
        ' Buscamos as tags <span> porque é em uma delas que está o nome buscado
        Set objCollection2 = IE.document.getElementsByTagName("span")
      
       
        i = 0
        While i < objCollection2.Length
           
            If objCollection2(i).classname = "saudacao" Then
                'Exibe a mensagem desejada.
                'Utilizamos o I+1 porque, no HTML, o nome está dentro de uma TAG <span> interna a TAG com classname 'saudacao'
                'Isso é específico do Bradesco
                'Cells([1], [5]).Value
                For Y = 1 To 3
               
                Range("D" & Y).Value = objCollection2(i + 1).innerText
               
                Next Y
               
               
               
            End If
                  
            i = i + 1

        Wend

        IE.Close

    End Sub

     

    terça-feira, 16 de julho de 2013 19:06