How to change a macro while running others?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hello

I have one excel file where the uer has to make selections in 4 steps:
1st step 7 options
2nd step 10 options
3rd step 2 options
4th step 3 options

So, at the end, the user has 420 possible combinations.

I don't want to have 420 macros, but only one per option (so, 22).

I would like to create a macro that is run at the end that could be

Sub Final()
Call Step1.a
Call Step2.c
Call Step3.a
Call Stelp4.d
End Sub()

But this macro would be created/written the user makes his choices...

Is this possible? Can anyone help me on doing this?

Thanks
 
Surely, you would just create one macro with 4 arguments, pass the selected
options as parameters to the macro, and act within the macro according to
the values of the arguments.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
How do the options affect the logic of the macro(s) i.e. how does the
selection value determine what each step does?
 
I am not sure I understood your question... each step is sequential (one uses
filters, other hides columns, other uses filters on a different column, ...)
and I have all the "small" macros running.

This is what I have now:
When the user selects the option in step 1, the macro runs. And the same
happens for step 2, 3 and 4. So, the user has to "see" macros running. This
is the reason why I would like to call these 4 macros from only one. This way
the user could do the selections and then at the end go to the selected
analysis
 
If you name your macros with numbers

You could do something like this pseudo code

Dim v(1 to 4)

for i = 1 to 4
v(i) = 12
Next
' React to Step 1
Select Case Step1_Value
if 100
v(1) = 1
if 200
v(1) = 6
End Select
' React to Step 2

Select Case Step2_Value
Case 15
v(2) = 3
Case 20
v(2) = 4
end Select

' react to Step 3
Select Case Step3_Value
Case "A"
v(3) = 5
Case "B"
v(3) = 10
End Select

' React to Step 4
Select Case Step4_Value
Case "MI"
v(4) = 2
Case "XYZ"
v(4) = 8
End Select

for i = 1 to 4
Application Run "Macro" & v(i)
Next

Or you could put macro names in the array or whatever.
 

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

Back
Top