Commandbar works first pass, but not thereafter

D

Dale Fye

I've added a commandbar (see code below) to my userform, which pops up
another userform. The first time I open this command bar and click on the
POC Info button, it opens the second form properly, but when I select click
on the label that pops this menu up a second time, there is a check in front
of the POC Info option, and clicking on it does nothing.

Any ideas what I am doing wrong?

Sub OptionsMenu()

Dim CmdBar As Office.CommandBar
Dim ctrl As Office.CommandBarControl

On Error Resume Next
Application.CommandBars("MyOptions").Delete
On Error GoTo 0

Set CmdBar = Application.CommandBars.Add(Name:="MyOptions", _

Position:=msoBarPopup, _
temporary:=True)

Set ctrl = CmdBar.Controls.Add(Type:=msoControlButton)
With ctrl
.Caption = "POC info"
.OnAction = "POC_Info"
End With

End Sub

Public Sub POC_Info()

Userform1.Hide
frm_POC_Info.Show
Userform1.Show

End Sub

Dale
 
D

Dale Fye

I resolved this by setting the CommandBarButton State property to msoButtonUp
in the subroutine that was called during the OnAction call.

It was either that, or changing: Userform1.Show
to: Userform1.Show 0

Dale
 
D

Dave D-C

Dale,
I've had that too. I can't explain why your setup doesn't work,
but this does.

Dim gblUF2% ' a global variable

Sub Main()
Call OptionsMenu ' your make popup routine
Do
UserForm1.Show
If gblUF2 Then
UserForm2.Show ' your frm_POC_Info
gblUF2 = 0
Else
Exit Do
End If
Loop
End Sub

Public Sub POC_Info()
' Don't show from here.
' Flag gblUF2 for Main to show.
gblUF2 = 1
UserForm1.Hide
End Sub
 
D

Dale Fye

Dave,

I think it had to do with the fact that in the OnAction code, I was hiding
the current form, then eventually showing it again (but as modal). This was
preventing the commandbar menu from completing its processing. I could tell
this because other command buttons on the menu worked properly (I would
click, it would do something, and when I opened the menu again, the item
would not have a check next to it (msoButtonDown)). When I changed it to
show the form as non-modal (Show 0), it worked properly.

Dale
 

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

Top