A previous spreadsheet let you download data for a single ticker symbol. Sometimes, however, data for just one company isn’t enough – you need to compare the relative performance of several companies. That’s when you need this free, user-friendly spreadsheet for bulk data download.

The spreadsheet is simple to use. Start by entering a start and end date, your desired quote frequency (d for daily, m for monthly, y for yearly), and your desired sorting (oldest data first or newest data first).

You can also specify if you want the data for each ticker written to separate CSV files. If so, specify an export folder for the files.

Then enter a list of ticker symbols in cell A11 and below (one tick per cell). After you click “Get Bulk Quotes”, the spreadsheet downloads the historical stock quotes into individual sheets. The sheet name is the ticker symbol.

The spreadsheet downloads the date, open price, high price, low price, closing price, volume and adjusted close price.

If you add or remove tickers , or refresh the data, the spreadsheet deletes the existing quote sheets, and inserts new sheets with the new data.

If you asked the spreadsheet to export the data, you’ll find a CSV file for each ticker in the folder you specified.

The file name is constructed from the ticker, start date, end date, and the download frequency.

If you misspell a ticker or leave a blank, the VBA is clever enough to skip over or ignore the error. You won’t get any nasty error messages.

You’ll also get a list of tickers for which no data was found. This list is dynamically updated by the VBA.

I’ve tested the spreadsheet by downloading historical quotes for 180 ticker symbols. Everything worked perfectly, with 180 new sheets added to the workbook, each filled with historical data.

You can also collate the open, high, low, close, adjusted close and volumes for every ticker on the same sheet. That is, you can collect all the open prices on one sheet (named “Open”) together with the corresponding dates, all the high prices on one sheet (named “High”) together with the corresponding dates etc. Simply check the “Collate” button.

The collate feature correctly reconciles tickers that return data with differing time series – dates and values are correctly associated.

The VBA is not protected; you can view and modify the code. Please let me know if you have any suggestions for improvements or additions to the functionality.

492 thoughts on “Multiple Stock Quote Downloader for Excel”

Comment navigation

I’m wondering, is there an addition to your existing code that could be made up to run the “Get Bulk Quotes” function again for the tickers that ended up in the “Failed” list the first time, only for the next time to add, for example, “NYSE:” before the ticker symbol in the list of stocks to run (in the Google spreadsheet)?

I have discovered (using ticker AAN as an example) that if I just put AAN in the included list of ticker symbols to run, it does not gather the data from Google and ends up in the Failed list, however if I enter “NYSE:AAN” as the entry, it does collect it and gets added to the Success list.

This would help tremendously if it could somehow loop at the end, using the Failed list as the new list of stocks to collect, and each time add all of the index prefixes that these stocks might be under, like NYSE:, NYSEARCA: or whatever other ones that there might be. Any ideas? I am adding something of a stock screener to your existing book and this is really the last thing I would want it to do in order to get as much data on as many stocks as possible.

Samir, I thank you for fine work! Also I wish success! 🙂
I have the same mistake: “Variable not defined” at the same time is highlighted in the yellow Sub CopyToCSV color (). The mistake arises only in that case if to note “write to csv”.

I just love this file. It really helps. I was using the other Yahoo download until it was rendered inoperable.
Q: When I run the import, the Locale on the Date format tab shows Afrikaans. How do I change the file so it is English on all the tabs without having to change all of them individually?

Hi Samir,
Great tool. It works in separate sheet within the spreadsheet but, if I click the ‘Write to CSV’ with proper folder to get separate file and then click on ‘Get Bulk Quotes’, I get an error under Sub CopyToCSV() – Compiler Error – Variable Not Defined at DataFrom = …..

Hi Samir
Can your sheet pickup stock prices for e.g. Danish stocks, like Vestas, ticker VWS, it’s available on Google as CPH:VWS, but I can’t get your sheet to read it, it goes in the Failed for These Tickers?

Hey Samir,
Thanks for updating the spreadsheet for the new Yahoo. I think you have the close and adjusted closing sheets swapped. I downloaded from Yahoo and compared to Multiple Stock Downloader Sheet. Please verify.
Thanks,
Terry

Hello Samir,
fantastic job.
Just 2 questions :
I don’t arrive to use french cotation EPA:SAN, EPA:SGO, EPA:MC, can you help me ?
How is it possible to download cotation of today without waiting midnight ?
Thank’s a lot

Hi Samir. I don’t want anything. I just want to say a big thanks for this program. I’ve been picking up a bit of VB knowledge along the way so I look forward to the occasional tweak if personal preferences get in the way of your great work. Thanks again. David

Hi Samir, I am running for the new Yahoo Downloader spreadsheet for first time today and I am getting a VB Compile Error “Variable not defined”. When I enter ok and it highlights ticker=ws.name. It captured all the individual data but did not generate the summary worksheets for Open/High/Low/Close.
Thanks for updating the spreadsheet for Yahoo, I had been enjoying the old one.

Hi Samir, Thank you for the excel. Is there any possibility to provide BULK stock quote downloading for intraday data from google finance.
I saw your file for downloading intraday data from google finance
and downloading bulk historical data from google finance. Why dont you provide bulk intraday data download?
In fact you could club all those files in to one single file where we can select the duration

fyi
in the bulk historical data download, there is a frequency selection option shown in your screenshot but in the file i downloaded that option is not there. Could you please check? thanks