Solved

Automating Internet Explorer through Excel VBA

Posted on 2015-02-20
8
280 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
  • 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 69

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
Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

 

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 69

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 69

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

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

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

This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

772 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