It is not clear what you are trying to achieve. I understand that you only use the spreadsheet to get the data and save it to a database.
There are a few alternatives I can think of:
- [dirty] create a scheduled task in Windows that opens the spreadsheet every x minutes / hours. In your workbook, create a
Workbook_Open
event that uses Application.OnTime
to execute a macro to do what you need to do with the data after a few minutes (the time it takes for the data to update). This is error-prone and will probably fail from time to time.
- [better] use something similar except that you get the data programmatically with the VBA Addin, populate the sheet from VBA and/or do what you need to do with the data. No need for
Application.OnTime
in that case. You can even automatically save/close the spreadsheet.
- [better] Have your java code get the data and send it to your database. If users need the data in Excel, you can have Excel query the database when required.
Note: with a typical Bloomberg Terminal/Anywhere license, it is not permitted to save data on a different machine so the database would need to be located on the local PC. Other licenses have different terms.