Avoiding verbose code

G

Geoff

Hi
Two custom menu buttons execute the same basic code but with one additional
function provided by the second button.
To avoid repeating the basic (lengthy) code in two modules it would be great
if I could detect which button was selected.
If this is possible then, noting the additional function is executed part
way through the basic code, the pseudo code would look like this:

Sub MenuSetUp()
btn1.OnAction = "MainProc"
btn2.OnAction = "MainProc"
End Sub

Sub MainProc()
basic code
If btn2 selected then do additional function
rest of basic code
End Sub

I'm guessing each button must have a click event to trigger its OnAction
statement but how do I trap this? I'd appreciate any help on this.

Geoff
 
G

Gary''s Student

You have pushed the unique actions too far down.

Sub Button1code()
Call Commonstuff
End Sub

Sub Button2code()
Call Commonstuff
do unique stuff
End Sub

There is no reason that Commonstuff must do actions that the specific button
code can perform.
 
S

stefan onken

hi Geoff,
you could use

Application.Caller(1) or
Application.CommandBars.ActionControl.Index

to get the Index of the pressed button.

Sub MainProc()
basic code
If Application.Caller(1) =2 then do additional function
rest of basic code
End Sub

stefan
 
G

Geoff

If I follow you correctly you are suggesting there should be 3 procs so that:

Sub Button1code()
Call Commonstuff1
Call Commonstuff2
End Sub

and

Sub Button2code()
Call Commonstuff1
Uniquestuff
Call Commonstuff2
End Sub

I could do that but it would still be nice to know how to recognise which
button was clicked. <g>

Geoff
 

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