WorkBook Activate event not working

  • Thread starter Thread starter sujatha_krao
  • Start date Start date
S

sujatha_krao

Hello,

I have an excel addin (.xla) file under excel startup folder (ie,
\office11\startup), where I have defined App_WorkbookActivate event.
This macro executes fine when I open the excel file from explorer. But
when I open the file from automation, it does not execute.
The code is as follows,

Application.EnableEvent(True)
ActiveWorkbook = AllWorkbooks.Open("filename")
ActiveWorkbook.RunAutoMacros(3)

Any suggestions would help!

Thankyou.
 
Application.EnableEvent(True)
Application.EnableEventS=true


Here is one I use with a double_click event to goto a workbook whose name is
typed in a cell.

Sub GetWorkbook()
If ActiveCell.Value = "" Then Exit Sub
workbookname = ActiveCell.Value
On Error GoTo OpenWorkbook
Windows(workbookname & ".xls").Activate
Exit Sub
OpenWorkbook:
Workbooks.Open(workbookname & ".xls").RunAutoMacros xlAutoOpen
End Sub
 
Activeworkbook is a predefined reference to the workbook that is active. I
wouldn't try setting it to anything.

The fact that you show that code and say that it works in any situation
makes your whole presentation suspect.

Of course Don has already pointed out an additional offending line:
 
Don said:
Application.EnableEventS=true


Here is one I use with a double_click event to goto a workbook whose name is
typed in a cell.

Sub GetWorkbook()
If ActiveCell.Value = "" Then Exit Sub
workbookname = ActiveCell.Value
On Error GoTo OpenWorkbook
Windows(workbookname & ".xls").Activate
Exit Sub
OpenWorkbook:
Workbooks.Open(workbookname & ".xls").RunAutoMacros xlAutoOpen
End Sub

Thanks for your reply.
The code looks similar, except for
Windows(workbookname & ".xls").Activate
What does the above line of code do?
I am writing in c++ and I am not sure what is the code equivalent to
the above in c++?
I understand Workbook activate is executed when workopen is opened.
 
Thanks for your reply.
The code looks similar, except for
Windows(workbookname & ".xls").Activate
What does the above line of code do?
I am writing in c++ and I am not sure what is the code equivalent to
the above in c++?
I understand Workbook activate is executed when workopen is opened.

I am sorry, I did have EnableEvents(True) in my code, it was a typo.
And I am coding in c++, so ActiveWorkbook is a object variable in my
code. It has nothing to do with the predefined reference.
The macro itself that I have defined in the xla file is as follows,

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)

Application.SendKeys ("%C")
Application.Dialogs(xlDialogPrintPreview).Show

Dim currentWindow As Window
For Each currentWindow In Wb.Windows
currentWindow.View = xlPageBreakPreview
Next currentWindow

End Sub

The xla file is in the excel start up folder, so it gets executed when
I open the file from explorer. However, when I try to open the file
from automation, it does not execute the activate event.
 
I see your deeply engaged with Don in some heavy duty topics, but just for
interest, Addins and files in the xlStart directory are not loaded when Excel
is started programmatically.

--
Regards,
Tom Ogilvy
 
Thanks.
Is there any way I can have this macro execute when excel is started
programatically?
 
Sure, in the same code that opens the workbook, open the addin as well.

As an alternative, you can load it as an addin, but opening it should have
the same effect.
 
Thankyou,
Can you give me some example code on how to open an addin? or how to
load as an addin?
 
I added code to open the addin, but I can't get it to work. Is it
sufficient to add code to open the addin or should I make a call to
something else?

Thankyou.
 
workbooks.Open "C:\MyFolder\Myfile.xla"

here is some code by Dana De Louis that loads the solver addin. If you want
to load the addin, then you can parts of this code as an example.


Sub SolverInstall()
'// Dana DeLouis
Dim wb As Workbook

On Error Resume Next
' Set a Reference to the workbook that will hold Solver
Set wb = ActiveWorkbook

With wb.VBProject.References
.Remove .Item("SOLVER")
End With

With AddIns("Solver Add-In")
.Installed = False
.Installed = True
wb.VBProject.References.AddFromFile .FullName
End With
End Sub
 
Thankyou all so very much. I appreciate your help.
I got it to work. I open the addin and then open the workbook and the
macro executes now.
 
Yea!!!

--
Regards,
Tom Ogilvy


ksr said:
Thankyou all so very much. I appreciate your help.
I got it to work. I open the addin and then open the workbook and the
macro executes now.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top