Ilounah Posted June 15, 2018 Share Posted June 15, 2018 (edited) Hello, Good Day Guys I made a simple stock request for our restaurant store and I want to use AutoIT before opening the file, can I compile them together so I can hide my excel file from the user? Thaks to 232showtime for helping me using vlookup I appreciate it. Edited June 15, 2018 by Daniza Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted June 15, 2018 Moderators Share Posted June 15, 2018 Look at FileInstall to include the excel file with the script. When the script runs you can output to a temp directory, then delete when finished. Ilounah 1 "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
Ilounah Posted June 16, 2018 Author Share Posted June 16, 2018 (edited) 5 hours ago, JLogan3o13 said: Look at FileInstall to include the excel file with the script. When the script runs you can output to a temp directory, then delete when finished. FileInstall("C:\Documents and Settings\MPC\Desktop\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm", @TempDir & "\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm", 1) $FileName = @TempDir & "\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm" $oExcelDoc = ObjCreate("Excel.Application") $oExcelDoc.AutomationSecurity = 1 $oExcelDoc.Visible = 1 $oExcelDoc.WorkBooks.Open($FileName) Thanks Sir @JLogan3o13 for FileInstall, I try to search and I come up with this, open file then make sure Macro is enable. My problem was how to delete the File from the TempDir after they close the File. I tried to make a Workbook_BeforeClose event on Excel but does'nt work (Maybe because cannot delete a open file) Sub Delete() On Error Resume Next aFile = Environ("temp") & "\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm" Kill aFile ' Make sure it actually got deleted. End Sub Any suggestion Thanks Edited June 16, 2018 by Daniza Link to comment Share on other sites More sharing options...
water Posted June 16, 2018 Share Posted June 16, 2018 You could use the AutoIt script to wait for this event and then delete the Excel file. Ilounah 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Ilounah Posted June 16, 2018 Author Share Posted June 16, 2018 (edited) @water Using While 1..wend then wait check TaskManager if Winexist if not then delete the file from TempDir? Edited June 16, 2018 by Daniza Link to comment Share on other sites More sharing options...
water Posted June 16, 2018 Share Posted June 16, 2018 (edited) As you use AutoIt to open the Excel workbook you could use the returned object to wait for the close event (untested): #include <Excel.au3> $sFileName = @TempDir & "\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm" FileInstall("C:\Documents and Settings\MPC\Desktop\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm", $sFileName, 1) $oExcel = _Excel_Open(False) ; Open Excel invisible $oExcel.AutomationSecurity = 1 $oWorkbook = _Excel_BookOpen($oExcel, $sFileName) ObjEvent($oWorkbook, "Workbook_") $bExit = False While 1 ; Wait until the workbook gets closed Sleep(10) If $bExit Then Sleep(500) ; Make sure that Excel has closed FileDelete($sFileName) Exit EndIf WEnd Func WorkBook_BeforeClose($bCancel) $bExit = True EndFunc Edited June 16, 2018 by water Fixed typo Ilounah 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Ilounah Posted June 16, 2018 Author Share Posted June 16, 2018 (edited) Hello, @water thanks for the Script you made i changed it a little bit Excel_Opn to Excel Open then False to True it Works fine, but I see one problem after file opened if you activate some stuff like notedpad or use alt+tab file excel will stop working and you need to force close it on task manager. It works fine if you do open>choose form>click, then your free to shift to other stuffs but if you do is open> shift to other stuff then try to go back excel then issue come up. Sorry for my bad English. Edited June 16, 2018 by Daniza Link to comment Share on other sites More sharing options...
water Posted June 16, 2018 Share Posted June 16, 2018 I can't imagine that the problem gets caused by the AutoIt script as it does not automate the GUI (and hence might interfere with other programs). Can you test with another Excel workbook that dos not run a macro? Ilounah 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Ilounah Posted June 16, 2018 Author Share Posted June 16, 2018 (edited) Hello @water Upon Observing the code really work's but in a invincible mode, I try to tweak the code put $oExcel = _Excel_Open(True) After _Excel_BookOpen then it fix the issue #include <Excel.au3> $sFileName = @TempDir & "\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm" FileInstall("C:\Documents and Settings\MPC\Desktop\[UPDATED]Standard Stock Requistion 06122018 - 06152018.xlsm", $sFileName, 1) $oExcel = _Excel_Open(False) ; Open Excel invisible $oExcel.AutomationSecurity = 1 $oWorkbook = _Excel_BookOpen($oExcel, $sFileName) $oExcel = _Excel_Open(True) ObjEvent($oWorkbook, "Workbook_") $bExit = False While 1 ; Wait until the workbook gets closed Sleep(10) If $bExit Then Sleep(500) ; Make sure that Excel has closed FileDelete($sFileName) Exit EndIf WEnd Func WorkBook_BeforeClose($bCancel) $bExit = True EndFunc Thank you for your time @water Closed.. Edited June 16, 2018 by Daniza Link to comment Share on other sites More sharing options...
water Posted June 16, 2018 Share Posted June 16, 2018 Glad you got it working My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now