Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / May 2008

Tip: Looking for answers? Try searching our database.

Avoiding verbose code

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Geoff - 30 May 2008 10:13 GMT
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
Gary''s Student - 30 May 2008 10:59 GMT
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.
Signature

Gary''s Student - gsnu200789

> Hi
> Two custom menu buttons execute the same basic code but with one additional
[quoted text clipped - 19 lines]
>
> Geoff
Geoff - 30 May 2008 11:36 GMT
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

> You have pushed the unique actions too far down.  
>
[quoted text clipped - 33 lines]
> >
> > Geoff
stefan onken - 30 May 2008 11:15 GMT
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

> Hi
> Two custom menu buttons execute the same basic code but with one additional
[quoted text clipped - 19 lines]
>
> Geoff
Geoff - 30 May 2008 11:52 GMT
Hi Stefan

ActionControl.index was what I was looking for.

Thank you for that.

Geoff

> hi Geoff,
> you could use
[quoted text clipped - 35 lines]
> >
> > Geoff
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.