Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VBA module that runs other modules

Tags:

excel

vba

call

I'm programming in Microsoft VBA. At first I need to generate a QueryTable with the help of a macro (I've got the code for that) and after that with the help of macros I need to apply formulas that use the data in the QueryTable. The problem that I am facing is that the QueryTable appears only after the Sub, in which its code is, has finished working. That means that I cannot include the code that generates formulas in it, because there is no data for the formulas to be generated on.

The idea right now is to write a module that runs other modules:

Sub moduleController()
    Run "Module1"
    Run "Module2"
End Sub

This gives the error:

Run time error 1004 - cannot run the macro "macroname". The macro may not be available in this workbook or all macros may be disabled.

What could be the solution? Maybe there is another solution for my QueryTable loading problem?

like image 356
ositra Avatar asked Mar 28 '12 13:03

ositra


1 Answers

As long as the macros in question are in the same workbook and you verify the names exist, you can call those macros from any other module by name, not by module.

So if in Module1 you had two macros Macro1 and Macro2 and in Module2 you had Macro3 and Macro 4, then in another macro you could call them all:

Sub MasterMacro()
    Call Macro1
    Call Macro2
    Call Macro3
    Call Macro4
End Sub
like image 75
Jerry Beaucaire Avatar answered Nov 15 '22 15:11

Jerry Beaucaire