View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Arne Hegefors Arne Hegefors is offline
external usenet poster
 
Posts: 244
Default .OnAction set value

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:

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.

--
Regards,
Tom Ogilvy


"Arne Hegefors" wrote:

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:

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
--
regards,
Tom Ogilvy


"Arne Hegefors" wrote:

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:

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.

--
Regards,
Tom Ogilvy



"Arne Hegefors" wrote:

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!