tag different modules

A

Arne Hegefors

I have a small problem that is of greate importance to me and seem to have a
hard time getting any help. I have two modules. in the first module i have
code that creates buttons. if a button is pressed then a sub in ANOTHER
module is called. that works fine. in that sub i want to check which button
has been pressed. therefore i need to look at the tag for the button. it is
here that my code fails. i do not know how to do this when the button is
created in another module than the sub. that is all i am asking. My code for
the first module:

Public Sub Create_Menu()
Dim MyBar As CommandBar
Dim MyPopup As CommandBarPopup
Dim linjeDiagramKnapp As CommandBarButton
Dim stapelDiagramKnapp As CommandBarButton
'stapeldiagramknapp
Set stapelDiagramKnapp = .Controls.Add(Type:=msoControlButton)
With stapelDiagramKnapp
.Tag = "stapel"
.Caption = "Stapeldiagram"
.Style = msoButtonCaption
''' msoButtonAutomatic, msoButtonIcon, msoButtonCaption,
''' or msoButtonIconandCaption
.BeginGroup = True
.OnAction = "ChartModul1.arrayLoop"
End With
'slut stapeldiagramknapp

.........some more buttons..........

in ANOTHER MODULE:

Public Sub arrayLoop()
Dim obj As Object
Dim currentChart As Object

Select Case CommandBars.ActionControl.Tag
Case "linje"
MsgBox ("linje button clicked.")
Case "stapel"
MsgBox ("stapel button clicked.")
Case ""
MsgBox ("empty")
End Select

I do not get any tag, it is always "". thus, there must be a probelm with
the fact that they are in different modules. please help me! i have know idea
how to write this nor how to find info that tells you how to do it. it is
really important to me. any help appreciated! thanks alot!
 
G

Gary Keramidas

can't really check your code, but i know if you create the buttons, or textbox
or anything else with controls.add, you use the "!" instead of the "." .

so
me.textbox1.value
would be
me!textbox1.value

maybe this will help.
 
A

Arne Hegefors

No I am sorry I create the buttons in my code using:

Set stapelDiagramKnapp = .Controls.Add(Type:=msoControlButton)

as I wrote. When I try to get the tag I write:

Select Case CommandBars.ActionControl.Tag

I tried changing the "." to "!" as you suggested but that gave me just
error. I dont understand it cannot be that hard to refer to another module,
what am I missing? I have shopped around in books and so but they have not
given me any guidance. If it is not possible please let me know (although I
doubt that that is the case). I have been spening half a day on this and I
have not come any closer to solving it. Please if anyone has any idea how to
do it please help me. Remeber I am just asking how to get the tag from a
button created in another module, nothing else. Thank you all for your help!

"Gary Keramidas" skrev:
 
B

Bob Phillips

Works fine for me Arne.

Are you sure arrayLoop is in module ChartModul1?

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
B

Bob Phillips

Actually, it is not necessary to include the module name if it is a standard
code module.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 

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