Solved

Automating Internet Explorer through Excel VBA

Posted on 2015-02-20
8
263 Views
Last Modified: 2016-02-10
Hi,

I am new to working with Internet Explorer inside of Excel. I have a VBA code that successfully logs into Morningstar.com's website and then goes to a specific URL that displays Income Statement data for a specific stock. I now need to have the VBA code to click on the "Export" button on this URL. After looking through the source code for this page, I cannot find the name or any mention of the export button.

The URL I am interested in is:
http://financials.morningstar.com/income-statement/is.html?t=AAP&region=usa&culture=en-US

The export button is on the top of the data table on the far right hand side. I would use similar code that I have for clicking on the "Login" button on the login screen. It looks like:

 Set inputCollection = appIE.document.getElementsByTagName("input")
   
    ' click the export button
    For Each inputElement In inputCollection
      If inputElement.getAttribute("name") = "export_button" Then   'don't know what the name is for the export button
        inputElement.Click
        Exit For
      End If
    Next inputElement

I would appreciate any help. Thanks!
0
Comment
Question by:ttbengineer
  • 4
  • 3
8 Comments
 
LVL 28

Assisted Solution

by:omgang
omgang earned 250 total points
ID: 40621568
I used Chrome Developer tools to locate the Export button.  See attached image.
OM Gang

Export button in source code
0
 

Author Comment

by:ttbengineer
ID: 40621654
Thanks for the info, OM Gang!

So if I use the code I listed, what would be the element by tag name? I assumed it would be "input", so I would use something like the following to loop through the elements and find the export button:

Set inputCollection = appIE.document.getElementsByTagName("input")
     
     ' click the export button
     For Each inputElement In inputCollection
       If inputElement.getAttribute("name") = "exportButton" Then  
         inputElement.Click
         Exit For
       End If
     Next inputElement

I tried this but it still doesn't click on the export button. Any ideas on what I'm doing wrong here?
0
 
LVL 68

Expert Comment

by:Qlemo
ID: 40621675
You don't need to go thru all the stuff, just call
appIE.document.getelementsbyname('sfcontent').Item(0).getElementsByClassName('rf_export').Item(0).click()

Open in new window

Note that you need to provide the innermost class, as only that one has an action.
0
 

Author Comment

by:ttbengineer
ID: 40621771
Qlemo,

I tried adding this and I am getting a compile error. The workbook is attached.

Thanks
Morningstar-Download.xlsm
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 68

Accepted Solution

by:
Qlemo earned 250 total points
ID: 40621796
Hmm, I tried with PowerShell, and the exposed interface is different ...
You can use this instead:
appIE.document.getElementsByClassname("rf_export").Item(0).Click

Open in new window

0
 

Author Comment

by:ttbengineer
ID: 40621868
Qlemo, that worked!

Now how can I call the "Open" button on the open or save message that pops up?
0
 
LVL 68

Expert Comment

by:Qlemo
ID: 40621881
You can't, and that is intentional. In IE you do not get access to the download overlay bar. Otherwise a script could download a file without you knowing it.
0
 

Author Comment

by:ttbengineer
ID: 40622054
Okay. Thank you guys for the help!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
User Beware!  This is a rather permanent solution to removing your email from an exchange server.  The only way to truly go back is to have your exchange administrator restore your mailbox from backups.  This is usually the option of last resort.  A…
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now