.OnAction set value

A

Arne Hegefors

In my macro when the user presses a button I use the following code:

Set stapelDiagramKnapp = .Controls.Add(Type:=msoControlButton)
With stapelDiagramKnapp
..Caption = "Stapeldiagram"
..OnAction = "ChartModul1.arrayLoop"
.....here I want to assign a value to a global variable (declared in a
differen place) so that I can keep track of which button is pressed.
Alternatively I can assign a value to an "ordinary" variable and pass that
along to the other modules as an argumnet. Can someone please help me with
the code for this? Thanks to you all very much!
 
T

Tom Ogilvy

in ArrayLoop you can get a reference to the button with

set cmdBtn = Application.Commandbars.ActionControl

so you don't need a global variable or to pass anything.
 
A

Arne Hegefors

Hello Tom! Great! Thanks for your help! Now I use cmdBtn.Caption to identify
the button but is there no better way of adding an id to a button? I tried
assigning an ID to the button by writing:

With linjeDiagramKnapp
.ID = "linje"
.Caption = "Linjediagram"

but when I check the id in msgbox all I get is 1. Is there no way of
assgning a descriptive ID but not using caption (you may want to chnage
caption so it does not feel that secure). Please help me out! Thanks very
much!
"Tom Ogilvy" skrev:
 
T

Tom Ogilvy

Id is a read only property. You can use the TAG or PARAMETER properties.


If you use TAG, then you can search for it using FindControl/Findcontrols
 
A

Arne Hegefors

Hi Tom! Lst question I hope. My commandbar is created in another module than
where i have the sub that checks the value of the commanbar.

In the module Meny:

Dim stapelDiagramKnapp As CommandBarButton
Set stapelDiagramKnapp = .Controls.Add(Type:=msoControlButton)
With stapelDiagramKnapp
.Tag = "stapel"
......

In the module ChartModul:

Set cmdBtn = Application.CommandBars.ActionControl
If cmdBtn.Tag = "stapel" Then
MsgBox ("it is a stapel")
End If

My problem is that the code does not find any value for the Tag. I assume
that I have to change the code for Application.Command.......but I do not
know how to write it so that it gets the tag value. please please please help
me out here! I hope I dont have to ask any more questions after this! I truly
appreciate all your help! Thanks very much!


"Tom Ogilvy" skrev:
 
T

Tom Ogilvy

Sub abcd()
Dim stapelDiagramKnapp As CommandBarButton
With CommandBars("Custom 1")
Set stapelDiagramKnapp = .Controls.Add(Type:=msoControlButton)
End With
With stapelDiagramKnapp
.Caption = "Test Button"
.Tag = "stapel"
.OnAction = "Module2.btnclk"
End With
End Sub

Sub btnclk()
Dim cmdBtn As CommandBarButton
Set cmdBtn = Application.CommandBars.ActionControl
If cmdBtn.Tag = "stapel" Then
MsgBox ("it is a stapel")
End If
End Sub


worked fine for me.
 
A

Arne Hegefors

Hello again! Thanks for your reply! I did not work for me. Then I deleted
another module that i was not using and then it all of a sudden started to
work...I really am not getting this programing. Thank you very much for all
your help Tom! I do not know what I would have done otherwise! Again thank
you very much!!!!


"Tom Ogilvy" skrev:
 

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