Open and Run Excel Macro Automatically - excel

I have an xlsm file containing the code to be run daily at a specific time. Our IT policy blocks the usage of Windows Task Scheduler. Is there a way to open the xlsm file automatically at a specific time? As usual, Thanks a lot to this forum to always come into rescue!!

Related

Open excel from powershell not in read-only to allow manual editing

My script currently scrapes some web data and places it into an excel file. However, I need to manually edit some fields before the script continues on.
My question is, once Ive scraped the data into excel, how do I open the application (with my new workbook) and allow editing?
I’ve tried start-process excel.exe but it opens with a read-only warning.
Thank you
Excel as an application always can do read and write. The question is if the file you are trying to open can be read-only. A read-write file can become read-only when emailed or downloaded. it is the file you want to check.

BAT script to automate importing VBA modules (.BAS) into Excel file and running macro

I've been trying to search for similar questions but wasn't able to find much for precisely what I'm looking for. I could have missed it in my search - if any of you can find a previous thread for this, please link it for me :)
Essentially what I'm trying to achieve is to fully automate an Excel report, which involves running a macro that I have a .BAS file for. I've seen tutorials for how to create a .VBS and .BAT script to automate the running of macros, but I wan't to also automate the importing of the macros. For example:
- I have my base dataset that I want to run the macro on, which comes in a standard Excel file (xlsx), which I save in a consistent location
- I have my .BAS file which contains the macro I want to use every time, saved in a different location from my reports
- What I am seeking: to have a .BAT file on my desktop that will automate: 1) Opening my standard xlsx file, 2) Saving it as an xlsm, 3) Importing my .BAS file with my macro, 4) Executing the macro, and 5) Closing Excel.
The key part I am missing is how to have the .BAT script automatically import the .BAS module into my Excel file. If I have to manually open Excel and import the module, I might as well just manually run the macro as well, thus eliminating the purpose of trying to create a .BAT file to automate :)
If anyone can provide guidance, that would be much appreciated. I hope my post was clear - if any questions, I can clarify in comments.

How to call macros using azure api

I have an excel file containing around 100K rows in onedrive. This file contains some macros. I want to run these macros using api.I want to pass these macro functions as parameters.
For example
https://graph.microsoft.com/beta/me/drive/root:/book1.xlsx:/workbook/tables/{id|name}
Here, I want to call macros function in place tables/{id|name}
Any way to do this?
Thanks
To be able to run an Excel macro, you need a running Excel instance that opens the file containing the macro and runs the code. There is no way around this I'm afraid.
So you need a machine - physical or virtual - where Excel is installed. Then you can have a script open the Excel file there and run the macros.
If you are working in a cloud environment or on a web server for example, you would be better off rewriting the code in another language, independent of Excel. (Trust me, I've been there, done that.)

Automatically run data connections in XLSM

I have an XLSM file which contains 2 Web Query connection. When I go to "Connections" in the "Data" tab I am presented with the two connections I have.
For each of these I can edit some properties, one which says "Update every X minutes". I've set this to 1 minute and also ticked "Activate background update".
This, however, won't work as the web query connections aren't run anyway.
Ultimately what I need is to run these connections automatically once every hour. Preferably without any user interaction and without the document being open.
Is this possible?
You can't refresh a connection without the file being open. You can run queries on opening the file or create a VBA routine that opens the file, then uses the RefreshAll and saves over the original file every hour.
You can use VBS too.
The final solution by OP:
I ended up making a little VBS script to handle the open, refresh,
close. Then a batch script wrapper to handle running the VBS script
and logging. Finally Windows Task Scheduler to run the batch script
periodically.

Is this possible in Excel: Open XLS via commandline, OnLoad import CSV data, Print as PDF, Close Doc?

Thinking that to solve a problem I've got this is the fastest solution:
Generate a custom CSV file on the file (this is already done via Perl).
Have a XLS document opened via commandline via a scripting language (clients already got a few Perl scripts running in this pipeline.)
Write VBA or record a macro that executes the following OnLoad:
Imports a the data from the CSV file into the report template,
Print the file via PDF driver to fixed location using data in the CSV to name the file.
Closes the XLS file.
So, is this possible via Excel macros, if not is it possible via VBA -- thanks!
NOTE: Appears I've got to have a copy of MS Office anyway, so this is much faster to get going than using Visual Studio Tools for Office (VSTO). The report template is going to be on a server, and this way the end user can build as many reports as they like, "test" by printing a PDF using a demo CSV file, and import/embed the marco or VBA when they're done. I'd looked in Jasper Reports, but the end user is putting ad-hoc static text and groupings all over the report and I figure this way they can build reports how ever they want and then automate them. Both of these questions by me and the resulting comments/feedback are related to this question:
In Excel, is it possible to automate reading of CSV data into a template and printing it to PDF from the commandline?
Is it possible to deploy a VB application made in Excel as a stand alone app?
FOCUS OF QUESTION: Again, focus of the question is if this is possible via Excel marcos, if not macros VBA, and if there's any huge issue with this approach; for example, I know this is going to be "slow" since Excel would be loaded per job, but there's 16GB of ram on the server and it's not used at all. Figure since I've got to have a copy of office on the server anyway, this is a much faster approach.
If you've got any questions, let me know via comments.
I suppose you could launch the report file from perl and then have a macro inside the report file automatically look for the newest csv file to import. Then you could process and output. So you just need to launch the proper excel file with the embedded macros from perl and then let excel and VBA take over.

Resources