none
Abrir várias abas no Internet Explorer pelo VBA RRS feed

  • Pergunta

  • Olá a todos,

       Gostaria de saber o sequinte: como faço para abrir várias abas do Internet Explorer pelo VBA e interagir com estas abas. Utilizo um sistema onde tenho que fazer login nele todos os dias. Eu abro, geralmente, quatro abas no Internet Explorer. Gostaria de fazer um código numa planilha onde eu pudesse automatizar o processo de logon. Tipo, eu executo o código, ele abre as quatro abas e faz login nas quatro abas. Ele pode abrir uma por uma e ir fazendo login. Mas é importante que ele abra Abas e não novas janelas. Abaixo o começo de um código que eu fiz, porém ele só faz login na primeira aba e abre a segunda. Não estou conseguindo fazê-lo interagir com as outras abas.

     

    Sub loginCA()

     

        Dim user As String

        Dim passwd As String

        Dim link As String

        Dim ie As InternetExplorer

        Dim frmIe  As Object

     

        user = "usuario"

        passwd = "senha"

        link = "link que eu quero acessar"

     

        Set ie = New InternetExplorer

        ie.Visible = True

     

        ie.Navigate URL:=link

        Do Until ie.ReadyState = READYSTATE_COMPLETE

            DoEvents

        Loop

     

     

        ie.Document.all("USERNAME").innertext = user

        ie.Document.all("PIN").innertext = passwd

        ie.Document.all("LOGIN").submit        

     

        ie.Navigate2 URL:=link, Flags:=2048       

    End Sub


    terça-feira, 11 de janeiro de 2011 15:52

Respostas

  • Você não pode fazer um login em cada aba, e sim um login para cada janela do Internet Explorer. Logo, você deveria usar como declaração de variáveis, por exemplo:

    Dim ie1 As InternetExplorer

    Dim ie2 As InternetExplorer

    Dim ie3 As InternetExplorer

    Dim ie4 As InternetExplorer

    E então, criar ou obter uma Aplicação do tipo InternetExplorer para cada uma delas.

    Se a diferença entre as seções for simplesmente o nome de usuário e senha, sugiro declarar as variáveis como:

    Dim ie(1 to 4) As InternetExplorer

    e então usar loops do tipo For...Next para tratar todas as instâncias.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 12 de janeiro de 2011 22:27
    Moderador