I'm not sure if it's possible - as in Excel there is no 'shift' (to
override startup) as in Access, although I might be wrong.
For what's my 0.02$ worth:
- if your access is just getting data from Excel and not putting
anything in back - then i don't think you need to open them up - just
link/import the excel data without even opening them up;
- if you indeed need to open them up you could modify your excel file
this way:
-- have the Workbook_Open routine do nothing but launch another
routine 'ontime' - like 2 seconds after opening the file. The OnTime
routine would do what previously the Workbook_Open used to do
-- add a custom property to your Wrokbook - something like Public
NotRunOnTime As Boolean (it would default to False)
-- have the OnTime routine check NotRunOnTime property and exit if
TRUE
-- when opening the wb from Access - the Workbook_Open will set the
2 sec timer for the OnTime to run but within the 2 sec you set the new
property (NotRunOnTime) to TRUE controling the .xls from Access. Then
after the 2 sec OnTime will see that NotRunOnTime=TRUE and will exit
not launching the whole code . Make sure to close the wb at the end
and not save the NotRunOnTime=true).
Just brainstorming but maybe will give you some ideas.
On Dec 3, 7:57*pm, Michael <mfg...@gmail.com> wrote:
> I have a MS Access routine that opens a whole bunch of Excel models
> and sucks data out into a data base. Problem is since I set it up some
> of the excel files now have a Workbook_Open event that gets triggered
> when Access Opens the workbooks. The event asks for some user input
> which I want to avoid when opened by Access.
>
> Is there a way for Excel to tell that it is being opend by VBA in
> Access as opposed to the user opening the file?
>
> This is how I am opening the workbooks from Excel
> * * * Set xlsApp = CreateObject("Excel.application")
> * * * Set wb = xlsApp.Workbooks.Open(Path & Filename, , True)
>
> Any ideas would be appreciated.
>
> Thanks.
|