Results 1 to 4 of 4

Thread: VBA IE Internet Explorer Automation Through ElementID

  1. #1
    Member mrmmickle1's Avatar
    Join Date
    Sep 2012
    Posts
    51
    Rep Power
    12

    VBA IE Internet Explorer Automation Through ElementID

    I am trying to figure out how to do two things.

    1. Fill in a Login Form Based on an Element ID >>
    Code:
    Set doc = IE.Document 
    Set el = doc.getElementById("someElementId") 
    el.value = "Username"   ' Is this correct??  How would I complete this statement?
    If Not el Is Nothing Then
    MsgBox el.innerText
    2. Press/Click a button by an element ID >>
    Code:
    Set doc = IE.Document
    Set el = doc.getElementById("someElementId")
    el.click  ' HOw do I perform a simple click?
    I have gotten to do this in the past by using some code that uses:
    Code:
    Dim htmlInput As MSHTML.HTMLInputElement
    
     Set HTMLdoc = .Document
                Set htmlColl = HTMLdoc.getElementsByTagName("INPUT")
                Do While HTMLdoc.ReadyState <> "complete": DoEvents: Loop
                    For Each htmlInput In htmlColl
                        If htmlInput.Name = "UserName" Then
                            htmlInput.Value = "USername Here
                        Else
                            If htmlInput.Name = "Password" Then
                                htmlInput.Value = "Password Here"
    But it doesn't seem to work for the website I am toying around with so I was hoping to try a different method.

    I have failed miserably searching the internet for information on IE Automation through VBA. I was hoping that someone may be able to give me a boost!
    Using Excel 2010

  2. #2
    Administrator Excel Fox's Avatar
    Join Date
    Mar 2011
    Posts
    1,401
    Rep Power
    10
    Since elements in web pages may not always be defined the same way, it would be better if you can share the site url so that we can suggest a possible solution

    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    https://www.youtube.com/watch?v=jTmVtPHtiTg&lc=Ugy_RiNN_kAqUvZ8W994AaABAg
    https://www.youtube.com/watch?v=QjEWAJ3d-jw&lc=UgxJLVpwY8fIla7G-pN4AaABAg.9BLeCWVhxdG9wgNsaS3Lp1
    https://www.youtube.com/watch?v=QjEWAJ3d-jw&lc=UgxJLVpwY8fIla7G-pN4AaABAg.9BLeCWVhxdG9wgR1EPUkhw
    https://www.youtube.com/watch?v=QjEWAJ3d-jw&lc=UgxJLVpwY8fIla7G-pN4AaABAg.9BLeCWVhxdG9wgNe_XC-jK
    https://www.youtube.com/watch?v=QjEWAJ3d-jw&lc=UgxJLVpwY8fIla7G-pN4AaABAg.9BLeCWVhxdG9wgNPOdiDuv
    https://www.youtube.com/watch?v=QjEWAJ3d-jw&lc=UgxJLVpwY8fIla7G-pN4AaABAg.9BLeCWVhxdG9wgN7AC7wAc
    https://www.youtube.com/watch?v=bs-urI_o8jo&lc=UgyBACXgNY4j_cHgH5J4AaABAg.9oTkVdzfqfm 9wlhQrYJP3M
    https://www.youtube.com/watch?v=bs-urI_o8jo&lc=UgxYgiEZuS9I3xkjJv54AaABAg
    https://www.youtube.com/watch?v=DVFFApHzYVk&lc=Ugyi578yhj9zShmhuPl4AaABAg
    https://www.youtube.com/watch?v=GqzeFYWjTxI&lc=UgxvxlnuTRWiV6MUZB14AaABAg
    https://www.youtube.com/watch?v=_8i1fVEi5WY&lc=Ugz0ptwE5J-2CpX4Lzh4AaABAg
    https://www.youtube.com/watch?v=0ltJS7uHfK4&lc=UgxoHAw8RwR7VmyVBUt4AaABAg. 9C-br0lEl8V9xI0_6pCaR9
    https://www.youtube.com/watch?v=0ltJS7uHfK4&lc=Ugz5DDCMqmHLeEjUU8t4AaABAg. 9bl7m03Onql9xI-ar3Z0ME
    https://www.youtube.com/watch?v=0ltJS7uHfK4&lc=UgxYnpd9leriPmc8rPd4AaABAg. 9gdrYDocLIm9xI-2ZpVF-q
    https://www.youtube.com/watch?v=0ltJS7uHfK4&lc=UgyjoPLjNeIAOMVH_u94AaABAg. 9id_Q3FO8Lp9xHyeYSuv1I
    https://www.reddit.com/r/windowsxp/comments/pexq9q/comment/k81ybvj/?utm_source=reddit&utm_medium=web2x&context=3
    https://www.youtube.com/watch?v=bs-urI_o8jo&lc=UgxYgiEZuS9I3xkjJv54AaABAg
    https://www.youtube.com/watch?v=bs-urI_o8jo&lc=UgyBACXgNY4j_cHgH5J4AaABAg.9oTkVdzfqfm 9wlhQrYJP3M
    ttps://www.youtube.com/watch?v=LP9fz2DCMBE
    https://www.youtube.com/watch?v=LP9fz2DCMBE&lc=UgzbPgJUMCztIOQDym14AaABAg
    https://www.youtube.com/watch?v=LP9fz2DCMBE&lc=UgzbPgJUMCztIOQDym14AaABAg. 9wdo_rWgxSH9wdpcYqrvp8
    ttps://www.youtube.com/watch?v=bFxnXH4-L1A
    https://www.youtube.com/watch?v=bFxnXH4-L1A&lc=UgxuODisjo6cvom7O-B4AaABAg.9w_AeS3JiK09wdi2XviwLG
    https://www.youtube.com/watch?v=bFxnXH4-L1A&lc=UgxBU39bTptFznDC1PJ4AaABAg
    ttps://www.youtube.com/watch?v=GqzeFYWjTxI
    https://www.youtube.com/watch?v=GqzeFYWjTxI&lc=UgwJnJDJ5JT8hFvibt14AaABAg
    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    Last edited by DocAElstein; 11-30-2023 at 03:15 PM.
    A dream is not something you see when you are asleep, but something you strive for when you are awake.

    It's usually a bad idea to say that something can't be done.

    The difference between dream and aim, is that one requires soundless sleep to see and the other requires sleepless efforts to achieve

    Join us at Facebook

  3. #3
    Member mrmmickle1's Avatar
    Join Date
    Sep 2012
    Posts
    51
    Rep Power
    12
    Rick,

    I have the below Procedure that will fill in the username and password. However it will not let me log in. If I take the portion of the code out that .click and let the procedure run and then click the button manually it works. If I change the procedure to Htmlforms(0).Submit it will not work either. It seems like it clicks the button however it gives me a username/password error which I know is not true. Since I did it manually and it worked. I feel like the website is purposely preventuing my access. I tried to use the Firefox, Firebug to identify the button. It looks like it is Input#submitButton (Submit Form Button). The inputs are input#ssnt.textbox (Username) and input#PIN.textbox (Password) Once in the website I would like to navigate to a tab based on the href and then pull down the table of my stock investments.

    Code:
    Option Explicit
    
     Sub Workbook_Open()
         
         
         'make sure you add references to Microsoft Internet Controls (shdocvw.dll) and
         'Microsoft HTML object Library.
         'Code will NOT run otherwise.
        Dim IE As Object
        Dim objIE As SHDocVw.InternetExplorer 'microsoft internet controls (shdocvw.dll)
        Dim htmlDoc As MSHTML.HTMLDocument 'Microsoft HTML Object Library
        Dim htmlInput As MSHTML.HTMLInputElement
        Dim htmlColl As MSHTML.IHTMLElementCollection
         
        Set objIE = New SHDocVw.InternetExplorer
         
        With objIE
            .Navigate "https://login.fidelity.com/ftgw/Fas/Fidelity/RtlCust/Login/Init?AuthRedUrl=https://oltx.fidelity.com/ftgw/fbc/ofsummary/defaultPage" ' Login Page.  I tried using the main page but I could not get the program to fill in the information.
            .Visible = 1                                                                                            'www.fidelity.com is the main page.  On the url referenced the code will fill in the login information.
            Do While .READYSTATE <> 4: DoEvents: Loop
                Application.Wait (Now + TimeValue("0:00:02"))
                
                 'set user name and password
                Set htmlDoc = .Document
                Set htmlColl = htmlDoc.getElementsByTagName("INPUT")
                Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop
                    For Each htmlInput In htmlColl
                        If htmlInput.Name = "ssnt" Then
                            htmlInput.Value = "Username"
                        Else
                            If htmlInput.Name = "PIN" Then
                                htmlInput.Value = "Password"
                        Else
                            If htmlInput.Name = "userpin" Then
                                htmlInput.Value = "2328"
                                
                                
                                End If
                            End If
                         End If
                    Next htmlInput
                     
                  'click login
                    Set htmlDoc = .Document
                    Set htmlColl = htmlDoc.getElementsByTagName("input")
                    Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop
                        For Each htmlInput In htmlColl
                            If Trim(htmlInput.Type) = "submit" Then
                                htmlInput.Click
                                Exit For
                            End If
                        Next htmlInput
                    End With
                Application.Quit
    
              End Sub
    I wanted to try to grab it by element and see if it would work. However, I adjusted the above code to fit my needs. So I am unsure of how exactly to go about this.


    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    https://www.youtube.com/watch?v=kfQC-sQxMcw&lc=UgyCxQWypNIhG2nUn794AaABAg.9q1p6q7ah839t UQl_92mvg
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=UgyOh-eR43LvlIJLG5p4AaABAg.9isnKJoRfbL9itPC-4uckb
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=Ugy1B1aQnHq2WbbucmR4AaABAg. 9isY3Ezhx4j9itQLuif26T
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=UgxxajSt03TX1wxh3IJ4AaABAg. 9irSL7x4Moh9itTRqL7dQh
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=Ugxa2VYHMWJWXA6QI294AaABAg. 9irLgSdeU3r9itU7zdnWHw
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=UgwJAAPbp8dhkW2X1Uh4AaABAg. 9iraombnLDb9itV80HDpXc
    https://www.youtube.com/watch?v=vXyMScSbhk4&lc=UgzIzQ6MQ5kTpuLbIuB4AaABAg. 9is0FSoF2Wi9itWKEvGSSq
    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    Last edited by DocAElstein; 08-16-2023 at 11:00 PM.
    Using Excel 2010

  4. #4

Similar Threads

  1. Replies: 17
    Last Post: 07-15-2013, 09:56 PM
  2. Unable to Get ElementID In VBA IE Automation
    By ashu1990 in forum Excel Help
    Replies: 9
    Last Post: 03-28-2013, 11:58 AM
  3. Looping Through Each Internet Explorer
    By Rajan_Verma in forum Rajan Verma's Corner
    Replies: 3
    Last Post: 03-27-2012, 07:30 PM
  4. VBA - Excel: Disable Internet / Google
    By technicalupload in forum Excel Help
    Replies: 3
    Last Post: 10-06-2011, 09:18 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •