Home |
Search |
Today's Posts |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
sounds like you don't have a toolbar called myToolbar
-- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "Trefor" wrote in message ... This code looks like what I am after, but when I ran it I get an Error 5 at: Set CBar = .CommandBars("myToolbar") Does anyone know why? Do I need something outside of the below to get this to work? -- Trefor "Greg Wilson" wrote: This was done very quickly and tested briefly. I'm short on time today. It shows that you can use a standard commandbar button to display a popup type toolbar (Position:=msoBarPopup) in the place of a standard menu type control (msoControlPopup). I use a loop to populate the popup toolbar and use arrays to apply Caption, OnAction and FaceId properties. I also show that this method has the advantage that you can change the status (e.g. Enabled property) of controls before displaying the popup. I repeat, this was done quickly. My tests indicate that it's OK. Best of luck !!! Regards, Greg Sub XYZ() Dim CBar As CommandBar, Popup As CommandBar Dim ctrl As CommandBarControl Dim CaptArr As Variant, MacroArr As Variant Dim FaceIdArr As Variant Dim i As Long With Application .ScreenUpdating = False Set CBar = .CommandBars("myToolbar") Set ctrl = CBar.Controls.Add(Temporary:=True) With ctrl .Caption = "Options" .TooltipText = "Show Option list" .OnAction = "ShowPopup" .FaceId = 300 .Style = msoButtonIconAndCaption End With On Error Resume Next .CommandBars("Options List").Delete On Error GoTo 0 Set Popup = .CommandBars.Add(Position:=msoBarPopup, Temporary:=True) Popup.Name = "Options List" CaptArr = Array("Run Macro 1", "Run Macro 2", "Run Macro 3") MacroArr = Array("Macro1", "Macro2", "Macro3") FaceIdArr = Array(100, 101, 102) For i = 0 To 2 Set ctrl = Popup.Controls.Add With ctrl .Caption = CaptArr(i) .OnAction = MacroArr(i) .FaceId = FaceIdArr(i) End With Next CBar.Visible = True .ScreenUpdating = True End With End Sub Private Sub ShowPopup() Dim i As Long 'This demo toggles the enabled status of the 'second button before showing the popup commandbar With Application.CommandBars("Options List") .Controls(2).Enabled = Not .Controls(2).Enabled .ShowPopup End With End Sub Sub Macro1() MsgBox "You called Macro1" End Sub Sub Macro2() MsgBox "You called Macro2" End Sub Sub Macro3() MsgBox "You called Macro3" End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Add Command to RightClick Menu | Excel Programming | |||
Add Command to Right-Click Menu | Excel Programming | |||
there is no XML command on my data menu | Excel Worksheet Functions | |||
Command Bar Menu - Management | Excel Programming | |||
Execute a menu command with VBA? | Excel Programming |