how to identify the control that ran a macro?

A

Andy Warner

Hi all...

Windows XP
Excel 2000 (9)

I have a set of 10 control buttons on a worksheet, named "Button 1"
thru "Button 10" all with different text (which happens to be the sheet
name of various sheets in the workbook)

I assign the same macro to them all.

I want to know WHICH button called the macro, and then goto a different
worksheet depending on the .TEXT of the button that ran the macro

I can do
myString = [Button 1].Text

if I know its Button 1 that ran the macro.

I am hoping there is something like

myString = ActiveButton.Text

The question is.... how can I tell which button ran the macro, and thus
the .Text of that button??

Ive searched for all things to do with controls/buttons/macros in
several booka dn online - i guess I don't know what exactly to look
for!

any help appreciated.
Andy
 
A

Andy Warner

I've now found

application.caller

which tells me which button ran the macro.

I want the .text of that button. I was hoping:

myString = Application.Caller.Text

or

myButton="["+Application.Caller+"]"
myString = myButton.Text

would work, but they dont. any further???
 
D

DM Unseen

Something like this should work

Sub Button_Click

Dim wb as workbook
Dim sht as worksheet

set sht = activesheet
set wb = activeworkbook

wb.worksheets(sht.Buttons(Application.Caller).Text).Activate

End Sub

DM Unseen
 
D

Don Guillett

This might get you started.

Sub Rectangle1_Click()
'MsgBox Application.Caller
With ActiveSheet.Shapes(Application.Caller)
MsgBox .TextFrame.Characters.Text
End With
End Sub

--
Don Guillett
SalesAid Software
(e-mail address removed)
"Andy Warner" <[email protected]>
wrote in message
news:[email protected]...
 
A

Andy Warner

The .Button(application.caller) versions dont want to work - cant find
the button property??

the shapes version works a treat.

thanks a bunch.

andy
 

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