Reputation: 167
Okay so i have 3 modules. My first module is "main" that is the module that i need to call the other module. What i mean is that when i run main, i want it to call/run
the other 2 module. Currently when i press F5, it doesn't do this. How do i do this?
My current code looks like this:
Sub main_TRY()
Call Module2
Call Module3
End Sub
All help is greatly appreciated. Thank you.
Upvotes: 3
Views: 138007
Reputation: 122
I had a similar situation where I needed to call a "Private Sub" routine. I decided to go with having each module call to the next. This allowed me to call the first module, then it would run code and trigger the next module if successful, and so on.
Sub main_TRY()
Application.Run ("ModuleNameHere")
End Sub
Just add the following to the end of each module and have it call to the next module you would like to run "NextModuleNameHere":
Application.Run ("NextModuleNameHere")
Upvotes: 0
Reputation: 90
I have a simular struction on one of my vba-scripts, and it goes like this.
Private Sub CommandButton1_Click()
Call GetData1
End Sub
and in my module2, it looks like this
Sub GetData1()
'my code
Dim IE As Object
Dim dd As Variant
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
IE.Visible = False
IE.Navigate "https://www.avanza.se/aktier/om-aktien.html/5247/investor-b"
Application.StatusBar = "Loading, Please wait..."
IEWait IE
Application.StatusBar = "Searching for value. Please wait..."
dd = IE.Document.getElementsByClassName("lastPrice SText bold")(0).innerText
Range("G7").Value = dd
End Sub
Maybe a bit to much, but I just wanted you to understand the structure of the code I'm using.
So everytime I click the buttom "CommandButton1" This code above will execute, but in your case everytime you call the function main_try() , you should, as pointed out above, call on the functions in the modules, not the module itself.
Hoped it helped, best regards
Upvotes: 0
Reputation: 167
Answer:
Sub main_TRY1()
Call Module2.Formating
Call Module3.Data
End Sub
Upvotes: 10