View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_6_] Bob Phillips[_6_] is offline
external usenet poster
 
Posts: 11,272
Default Carrying Variables into Called Macros

Pass X as a macro argument

Call myMacro(X)

and in the macro

Sub myMacro(XVal)

MsgBox XVal
'etc.

End SUb

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Marty" wrote in message
...
Hello:

I'm looking for a way to carry a variable with an
assigned value into a called macro.

I have 10 CheckBoxes on a worksheet. When box 1 is
checked, I want to assign a variable (call it X) the
value equal to the checkbox number. Example: when box 1
is checked, I want X = 1, when box 2 is checked, I want X
= 2, etc.

I have a macro which I want to "Call" and execute for
each box. The same macro is called for each box; the
only difference is the value of the variable X, which the
macro uses to do its thing.

When I set it up like this:
Private Sub CheckBox 1_Click()
X = 1
Call {macro}
End Sub

I get an error which tells me that X is not recognized by
the macro. When I hardcode X=1 in the macro, it works.

Is there a way to carry X into the macro? I'm trying to
avoid having 10 nearly identical macros in my spreadsheet.

I could settle for modifying the macro by adding 10
lines:
If [CheckBox 1 is clicked] then X = 1
If [CheckBox 2 is clicked] then X = 2, etc.

But I don't know the correct syntax for the code between
the []'s.

First option (carrying the value) is preferred, but 2nd
option (modifying the macro) will be OK with me.

Help on either is appreciated.

Thanks,
MARTY