ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Setting OnAction Property Fails (https://www.excelbanter.com/excel-programming/338759-setting-onaction-property-fails.html)

Josh Sale

Setting OnAction Property Fails
 
I have an add-in that works just fine when there is a single instance of it
running on a particular machine.

However, if two copies get launched at essentially the same time on the same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work just
fine when a single instance of Excel and the add-in is running ... the error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this problem?

BTW, am running XL2003.

TIA,

josh



Jim Thomlinson[_4_]

Setting OnAction Property Fails
 
My question is how are you getting two instances of the addin running on one
machine concurrently? Solve that and the problems go away... Is the addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single instance of it
running on a particular machine.

However, if two copies get launched at essentially the same time on the same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work just
fine when a single instance of Excel and the add-in is running ... the error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this problem?

BTW, am running XL2003.

TIA,

josh




Josh Sale

Setting OnAction Property Fails
 
Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that reads
messages off of a queue. Depending on the content of each message this
process spawns off a copy of Excel with command line arguments that are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin running on
one
machine concurrently? Solve that and the problems go away... Is the addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single instance of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work
just
fine when a single instance of Excel and the add-in is running ... the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this problem?

BTW, am running XL2003.

TIA,

josh






Jim Thomlinson[_4_]

Setting OnAction Property Fails
 
Multiple instances of excel running should not (to the best of my knowledge)
cause any difficulty. Each one resides in it's own world and does not
interact with other instances. In any one instance of Excel do you have the
addin running more than once (I might be a little slow on the uptake but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that reads
messages off of a queue. Depending on the content of each message this
process spawns off a copy of Excel with command line arguments that are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin running on
one
machine concurrently? Solve that and the problems go away... Is the addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single instance of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work
just
fine when a single instance of Excel and the add-in is running ... the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this problem?

BTW, am running XL2003.

TIA,

josh







Josh Sale

Setting OnAction Property Fails
 
No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of buttons
on each one. So there is a period where maybe 20 or 30 toolbar buttons,
shortcut menu's, etc have their OnAction property set. And this is where it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does not
interact with other instances. In any one instance of Excel do you have
the
addin running more than once (I might be a little slow on the uptake but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that
reads
messages off of a queue. Depending on the content of each message this
process spawns off a copy of Excel with command line arguments that are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin running
on
one
machine concurrently? Solve that and the problems go away... Is the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work
just
fine when a single instance of Excel and the add-in is running ... the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh









Jim Thomlinson[_4_]

Setting OnAction Property Fails
 
It sound like you are creating and destroying the toolbar at the workbook
open events. I assume you are destroying the toolbar when you are done.
Instead of using this even try using the AddinInstall event something like
this... This way your toolbar does not need to be loaded each time and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of buttons
on each one. So there is a period where maybe 20 or 30 toolbar buttons,
shortcut menu's, etc have their OnAction property set. And this is where it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does not
interact with other instances. In any one instance of Excel do you have
the
addin running more than once (I might be a little slow on the uptake but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that
reads
messages off of a queue. Depending on the content of each message this
process spawns off a copy of Excel with command line arguments that are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin running
on
one
machine concurrently? Solve that and the problems go away... Is the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button work
just
fine when a single instance of Excel and the add-in is running ... the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh










Josh Sale

Setting OnAction Property Fails
 
Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so that
they disappear in the event the code doesn't shutdown normally. I do this
because some of our users have multiple shortcuts that let them launch Excel
with or without this add-in installed. If they launch without the add-in I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are raised as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the workbook
open events. I assume you are destroying the toolbar when you are done.
Instead of using this even try using the AddinInstall event something like
this... This way your toolbar does not need to be loaded each time and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar buttons,
shortcut menu's, etc have their OnAction property set. And this is where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does not
interact with other instances. In any one instance of Excel do you have
the
addin running more than once (I might be a little slow on the uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that
reads
messages off of a queue. Depending on the content of each message
this
process spawns off a copy of Excel with command line arguments that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away... Is the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button
work
just
fine when a single instance of Excel and the add-in is running ...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh












Jim Thomlinson[_4_]

Setting OnAction Property Fails
 
The install/unistall events are raised when the Tools- Addins - check or
uncheck is done. In this way you are not creating the toolbar every time
excel is opened. I was wondering if you might have a conflict if Two copies
of excel are opened almost simultaneously and the xla file is by the other
instance to create the toolbars. Like I said I don't have trouble with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so that
they disappear in the event the code doesn't shutdown normally. I do this
because some of our users have multiple shortcuts that let them launch Excel
with or without this add-in installed. If they launch without the add-in I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are raised as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the workbook
open events. I assume you are destroying the toolbar when you are done.
Instead of using this even try using the AddinInstall event something like
this... This way your toolbar does not need to be loaded each time and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar buttons,
shortcut menu's, etc have their OnAction property set. And this is where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does not
interact with other instances. In any one instance of Excel do you have
the
addin running more than once (I might be a little slow on the uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and that
reads
messages off of a queue. Depending on the content of each message
this
process spawns off a copy of Excel with command line arguments that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away... Is the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button
work
just
fine when a single instance of Excel and the add-in is running ...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh













Josh Sale

Setting OnAction Property Fails
 
Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this problem
seemed to be related to running these processes on the server in a Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins - check or
uncheck is done. In this way you are not creating the toolbar every time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the other
instance to create the toolbars. Like I said I don't have trouble with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so
that
they disappear in the event the code doesn't shutdown normally. I do
this
because some of our users have multiple shortcuts that let them launch
Excel
with or without this add-in installed. If they launch without the add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are done.
Instead of using this even try using the AddinInstall event something
like
this... This way your toolbar does not need to be loaded each time and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does
not
interact with other instances. In any one instance of Excel do you
have
the
addin running more than once (I might be a little slow on the uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and
that
reads
messages off of a queue. Depending on the content of each message
this
process spawns off a copy of Excel with command line arguments that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away... Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button
work
just
fine when a single instance of Excel and the add-in is running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh















Jim Thomlinson[_4_]

Setting OnAction Property Fails
 
I love a good theory...
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this problem
seemed to be related to running these processes on the server in a Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins - check or
uncheck is done. In this way you are not creating the toolbar every time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the other
instance to create the toolbars. Like I said I don't have trouble with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so
that
they disappear in the event the code doesn't shutdown normally. I do
this
because some of our users have multiple shortcuts that let them launch
Excel
with or without this add-in installed. If they launch without the add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are done.
Instead of using this even try using the AddinInstall event something
like
this... This way your toolbar does not need to be loaded each time and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does
not
interact with other instances. In any one instance of Excel do you
have
the
addin running more than once (I might be a little slow on the uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and
that
reads
messages off of a queue. Depending on the content of each message
this
process spawns off a copy of Excel with command line arguments that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away... Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar button
work
just
fine when a single instance of Excel and the add-in is running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing this
problem?

BTW, am running XL2003.

TIA,

josh
















Tom Ogilvy

Setting OnAction Property Fails
 
why do you need custom toolbars if no one is there to use them?

--
Regards,
Tom Ogilvy


"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this

problem
seemed to be related to running these processes on the server in a Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins - check

or
uncheck is done. In this way you are not creating the toolbar every time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the

other
instance to create the toolbars. Like I said I don't have trouble with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so
that
they disappear in the event the code doesn't shutdown normally. I do
this
because some of our users have multiple shortcuts that let them launch
Excel
with or without this add-in installed. If they launch without the

add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are

raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are

done.
Instead of using this even try using the AddinInstall event something
like
this... This way your toolbar does not need to be loaded each time

and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does
not
interact with other instances. In any one instance of Excel do you
have
the
addin running more than once (I might be a little slow on the

uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the add-in
intentionally. We have a non-Excel process runs on a server and
that
reads
messages off of a queue. Depending on the content of each

message
this
process spawns off a copy of Excel with command line arguments

that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away... Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same

time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of

code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar

button
work
just
fine when a single instance of Excel and the add-in is running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing

this
problem?

BTW, am running XL2003.

TIA,

josh

















Josh Sale

Setting OnAction Property Fails
 
Well that is the million dollar question!

Clearly in general they aren't needed.

Unfortunately the add-in contains code that depending on what the user is
doing, makes certain comandbars visible or invisible as appropriate. The
code which does this assumes that these commandbars exist and will abort if
they don't and this code could be stumbled into by the batch activity.

I've created an experimental version of the code that creates all of the
commandbars but skips the creation of all of the commandbuttons on those
bars when operating in batch mode and that seems to work around the
immediate problem. But then we run into a different not obviously related
problem that I'm still investigating.

Tom, you seem to know everything about Excel. Have you ever heard of this
kind of problem? Any thoughts about it?

Another theory I had was that there was some kind of contention over the
user's .xlb file. I don't know if the .xlb file is updated for temporary
commandbars or not. I asked for another test to be run where each process
ran under its own Windows ID (and would thus have their own .xlb file) and
was told that the problem still occurred ... but I'm not sure I trust that
test result yet.

josh





"Tom Ogilvy" wrote in message
...
why do you need custom toolbars if no one is there to use them?

--
Regards,
Tom Ogilvy


"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this

problem
seemed to be related to running these processes on the server in a Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins - check

or
uncheck is done. In this way you are not creating the toolbar every
time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the

other
instance to create the toolbars. Like I said I don't have trouble with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open event
handler and delete them in its Workbook_BeforeClose handler. The new
commandbars are created as temporary (4th argument to .Add is True) so
that
they disappear in the event the code doesn't shutdown normally. I do
this
because some of our users have multiple shortcuts that let them launch
Excel
with or without this add-in installed. If they launch without the

add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are

raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are

done.
Instead of using this even try using the AddinInstall event
something
like
this... This way your toolbar does not need to be loaded each time

and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of my
knowledge)
cause any difficulty. Each one resides in it's own world and does
not
interact with other instances. In any one instance of Excel do
you
have
the
addin running more than once (I might be a little slow on the

uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the
add-in
intentionally. We have a non-Excel process runs on a server
and
that
reads
messages off of a queue. Depending on the content of each

message
this
process spawns off a copy of Excel with command line arguments

that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in message
...
My question is how are you getting two instances of the addin
running
on
one
machine concurrently? Solve that and the problems go away...
Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same

time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of

code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar

button
work
just
fine when a single instance of Excel and the add-in is
running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing

this
problem?

BTW, am running XL2003.

TIA,

josh



















Tom Ogilvy

Setting OnAction Property Fails
 
I would never claim to know everything and that has been proven many times
:)

I really had a similar question when I was reading this. How do changes to
commandbars in separate instances of excel in the same user id affect the
xlb file. I suspect the file isn't updated until the workbook is closed or
excel is exited, but I don't actually know.

Under the above impression, I wouldn't see temp toolbars updating the file.
I guess a way to test would be to create some temp toolbars, then crash
excel (maybe a permanent one also). I suspect when reopened, they would be
gone.

--
Regards,
Tom Ogilvy

"Josh Sale" <jsale@tril dot cod wrote in message
...
Well that is the million dollar question!

Clearly in general they aren't needed.

Unfortunately the add-in contains code that depending on what the user is
doing, makes certain comandbars visible or invisible as appropriate. The
code which does this assumes that these commandbars exist and will abort

if
they don't and this code could be stumbled into by the batch activity.

I've created an experimental version of the code that creates all of the
commandbars but skips the creation of all of the commandbuttons on those
bars when operating in batch mode and that seems to work around the
immediate problem. But then we run into a different not obviously related
problem that I'm still investigating.

Tom, you seem to know everything about Excel. Have you ever heard of this
kind of problem? Any thoughts about it?

Another theory I had was that there was some kind of contention over the
user's .xlb file. I don't know if the .xlb file is updated for temporary
commandbars or not. I asked for another test to be run where each process
ran under its own Windows ID (and would thus have their own .xlb file) and
was told that the problem still occurred ... but I'm not sure I trust that
test result yet.

josh





"Tom Ogilvy" wrote in message
...
why do you need custom toolbars if no one is there to use them?

--
Regards,
Tom Ogilvy


"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this

problem
seemed to be related to running these processes on the server in a

Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins -

check
or
uncheck is done. In this way you are not creating the toolbar every
time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the

other
instance to create the toolbars. Like I said I don't have trouble

with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open

event
handler and delete them in its Workbook_BeforeClose handler. The

new
commandbars are created as temporary (4th argument to .Add is True)

so
that
they disappear in the event the code doesn't shutdown normally. I

do
this
because some of our users have multiple shortcuts that let them

launch
Excel
with or without this add-in installed. If they launch without the

add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent

doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are

raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are

done.
Instead of using this even try using the AddinInstall event
something
like
this... This way your toolbar does not need to be loaded each time

and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number

of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this

is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of

my
knowledge)
cause any difficulty. Each one resides in it's own world and

does
not
interact with other instances. In any one instance of Excel do
you
have
the
addin running more than once (I might be a little slow on the

uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the
add-in
intentionally. We have a non-Excel process runs on a server
and
that
reads
messages off of a queue. Depending on the content of each

message
this
process spawns off a copy of Excel with command line arguments

that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in

message
...
My question is how are you getting two instances of the

addin
running
on
one
machine concurrently? Solve that and the problems go away...
Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a

single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the same

time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of

code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar

button
work
just
fine when a single instance of Excel and the add-in is
running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing

this
problem?

BTW, am running XL2003.

TIA,

josh





















Josh Sale

Setting OnAction Property Fails
 
I deleted my .xlb file, started Excel with my add-in and then crashed Excel
and as you suggested, I still had no .xlb file. However, if I close Excel
normally, I get a new .xlb file.

There is no obvious indication of an existing .xlb file being updated at
Excel/add-in startup (which might support the idea of .xlb contention).
That is, the timestamp doesn't change until a normal Excel close.

So if both instances are running under the same Windows ID and process 1
starts up, reads the .xlb file, process 2 starts up, reads the .xlb file,
process 1 wraps up and updates the .xlb file and then process 2 wraps up and
over-writes the .xlb file does this explain my abort? It doesn't seem like
it. All of our aborts seem to occur during initialization which doesn't
seem like a point of .xlb contention.

josh


"Tom Ogilvy" wrote in message
...
I would never claim to know everything and that has been proven many times
:)

I really had a similar question when I was reading this. How do changes
to
commandbars in separate instances of excel in the same user id affect the
xlb file. I suspect the file isn't updated until the workbook is closed
or
excel is exited, but I don't actually know.

Under the above impression, I wouldn't see temp toolbars updating the
file.
I guess a way to test would be to create some temp toolbars, then crash
excel (maybe a permanent one also). I suspect when reopened, they would
be
gone.

--
Regards,
Tom Ogilvy

"Josh Sale" <jsale@tril dot cod wrote in message
...
Well that is the million dollar question!

Clearly in general they aren't needed.

Unfortunately the add-in contains code that depending on what the user is
doing, makes certain comandbars visible or invisible as appropriate. The
code which does this assumes that these commandbars exist and will abort

if
they don't and this code could be stumbled into by the batch activity.

I've created an experimental version of the code that creates all of the
commandbars but skips the creation of all of the commandbuttons on those
bars when operating in batch mode and that seems to work around the
immediate problem. But then we run into a different not obviously
related
problem that I'm still investigating.

Tom, you seem to know everything about Excel. Have you ever heard of
this
kind of problem? Any thoughts about it?

Another theory I had was that there was some kind of contention over the
user's .xlb file. I don't know if the .xlb file is updated for temporary
commandbars or not. I asked for another test to be run where each
process
ran under its own Windows ID (and would thus have their own .xlb file)
and
was told that the problem still occurred ... but I'm not sure I trust
that
test result yet.

josh





"Tom Ogilvy" wrote in message
...
why do you need custom toolbars if no one is there to use them?

--
Regards,
Tom Ogilvy


"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks for the suggestion.

Here's our latest theory ... one of my colleagues noticed that this
problem
seemed to be related to running these processes on the server in a

Remote
Desktop session. Last night we ran over 1,000 messages through this
mechanism from the server's local console with no failures.

We're in the process of retesting this theory now.

josh




"Jim Thomlinson" wrote in message
...
The install/unistall events are raised when the Tools- Addins -

check
or
uncheck is done. In this way you are not creating the toolbar every
time
excel is opened. I was wondering if you might have a conflict if Two
copies
of excel are opened almost simultaneously and the xla file is by the
other
instance to create the toolbars. Like I said I don't have trouble

with
multiple instances so this is a bit of a shot in the dark.
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Correct, I create the commandbars in the add-in's Workbook_Open

event
handler and delete them in its Workbook_BeforeClose handler. The

new
commandbars are created as temporary (4th argument to .Add is True)

so
that
they disappear in the event the code doesn't shutdown normally. I

do
this
because some of our users have multiple shortcuts that let them

launch
Excel
with or without this add-in installed. If they launch without the
add-in
I
don't want them to ever see my commandbars.

So a solution that requires that the commandbars be permanent

doesn't
sound
very good to me.

I'm a little fuzzy when the AddinInstall/AddinUninstall events are
raised
as
opposed to Workbook_Open/Workbook_BeforeClose.

josh



"Jim Thomlinson" wrote in message
...
It sound like you are creating and destroying the toolbar at the
workbook
open events. I assume you are destroying the toolbar when you are
done.
Instead of using this even try using the AddinInstall event
something
like
this... This way your toolbar does not need to be loaded each
time
and
perhaps your onaction will not have the conflict.

Private Sub Workbook_AddinInstall()
Call CreateMyToolbar
End Sub

Private Sub Workbook_AddinUninstall()
Call DestroyMyToolbar
End Sub
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

No ... a single copy of the add-in in each instance of Excel.

At startup, the add-in creates a few toolbars and puts a number

of
buttons
on each one. So there is a period where maybe 20 or 30 toolbar
buttons,
shortcut menu's, etc have their OnAction property set. And this

is
where
it
blows it brains out.

josh



"Jim Thomlinson" wrote in message
...
Multiple instances of excel running should not (to the best of

my
knowledge)
cause any difficulty. Each one resides in it's own world and

does
not
interact with other instances. In any one instance of Excel do
you
have
the
addin running more than once (I might be a little slow on the
uptake
but I
could not determine that from your post)?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

Jim,

We're actually running multiple instances of Excel and the
add-in
intentionally. We have a non-Excel process runs on a server
and
that
reads
messages off of a queue. Depending on the content of each
message
this
process spawns off a copy of Excel with command line
arguments
that
are
based on the message content.

So we want to make this work.

The add-in isn't added by code.

josh



"Jim Thomlinson" wrote in

message
...
My question is how are you getting two instances of the

addin
running
on
one
machine concurrently? Solve that and the problems go
away...
Is
the
addin
installed through code?
--
HTH...

Jim Thomlinson


"Josh Sale" wrote:

I have an add-in that works just fine when there is a

single
instance
of
it
running on a particular machine.

However, if two copies get launched at essentially the
same
time
on
the
same
machine, I get the following error:

Method 'OnAction' of object '_CommandBarButton' failed.

The runtime error number is 80004005. The failing line of
code
looks
like
this:

Dim cmdButton As CommandBarButton

cmdButton.OnAction = "SomeMacroName"

Again, the assignment statement and the resulting toolbar
button
work
just
fine when a single instance of Excel and the add-in is
running
...
the
error
only happens when two copies are started at the same time.

Any thoughts?

Do multiple copies of Excel share something that's causing
this
problem?

BTW, am running XL2003.

TIA,

josh
























All times are GMT +1. The time now is 08:56 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com