Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Automating Internet Explorer through Excel VBA

Posted on 2015-02-20
8
Medium Priority
?
402 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®ion=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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
8 Comments
 
LVL 28

Assisted Solution

by:omgang
omgang earned 1000 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 71

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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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
 
LVL 71

Accepted Solution

by:
Qlemo earned 1000 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 71

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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
After seeing numerous questions for Dynamic Data Validation I notice that most have used Visual Basic to solve the problem. This suggestion is purely formula based and can be used in multiple rows.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

604 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