View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Neil[_14_] Neil[_14_] is offline
external usenet poster
 
Posts: 29
Default macro works on F8 but not auto: more info

Bernie - no luck there either. However, I did find a
less elegant way...

commandbars(1).reset

I stumbled across this as I was running some tests and
accidentally deleted all the built in items (which I
thought you were not supposed to be able to do...). I
paniced for a second but then figured there must be a way
to reset...found that, restored the built ins and then
realized....

Thanks for the help.

Neil

-----Original Message-----
Neil,

How about trying to step through the controls:

Sub DeleteCustomButtons()
Dim CmdBar As CommandBar
Dim myCont As CommandBarControl
Set CmdBar = Application.CommandBars(1)
For Each myCont In CmdBar.Controls
If myCont.BuiltIn = False Then
myCont.Delete
End If
Next myCont
End Sub

HTH,
Bernie
MS Excel MVP

"Neil" wrote in

message
...
I ran a couple of tests...

If there were two menu items with builtin=false, the
first one deletes, the second one errors out. It seems
that if there is only one custom item, there is a

problem
deleting it.

Placement does not seem to matter - I had thought that
maybe there was a problem with the "last" menu item.

I'm relatively new to VB programming (6 weeks) so I

don't
know where to go with this info.

Neil


-----Original Message-----
Neil,

As soon as you delete a control, that throws off your

upper limit on the Do
loop. You need to go in reverse order. I'm not sure

why
it works by
stepping through, but I'm sure why it doesn't work in

regular execution:

For Count = CommandBars(1).Controls.Count To 1 Step -1
Set menuitem = CommandBars(1).Controls(Count)
If menuitem.BuiltIn = False Then menuitem.Delete
Next Count

HTH,
Bernie
MS Excel MVP

wrote in message
...
Here's the code...

Sub addtomenu()

Dim dubam As CommandBarControl

Set dubam = CommandBars(1).Controls.Add
(Type:=msoControlPopup)
dubam.Caption = "Return to DUBAM"
With dubam
.OnAction = "deletefrommenu"
End With


End Sub


Sub deletefrommenu()
Dim menuitem As CommandBarControl
Dim count As Integer

For Each menuitem In CommandBars(1).Controls
count = count + 1
Set menuitem = CommandBars(1).Controls(count)
If menuitem.BuiltIn = False Then
menuitem.Delete
End If
Next

Call go


End Sub

-----Original Message-----
Neil,

Post your code.

HTH,
Bernie
MS Excel MVP

"Neil" wrote

in
message
...
Macro written to delete an addition to commandbar

(1):

When it is invoked through the .onaction property

that
is
defined when the menu item is added, the delete

item
macro fails. The error message is -2147467259
(80004005)
Method 'Delete' of object 'CommandBarPopup'

failed.

Strangely though, if I step through the macro
incrementally (F8 F8 F8...) it works fine.

I can't figure this one out.

Thanks for any help!

Neil


.



.



.