All the modules, functions and subs are interconnected in Excel, could have each sub independent and have another function to run everything in sequence, thus:
Sub um()
'código [...]
End Sub
Sub dois()
'código [...]
End Sub
Sub tres()
'código [...]
End Sub
And the one that spins in the sequence:
Sub RodaTudo()
' Chama a Sub UM
um
' Chama a Sub DOIS
dois
' Chama a Sub tres
tres
End Sub
Something I use a lot are function instead of sub there are some differences, but basically two:
The functions do not appear to the user when in the spreadsheet tries to run a macro, for example, being in the spreadsheet the user can press Alt+F8 to show macros and try to run some, if it’s function instead of sub, it won’t be there.
The functions can receive and return values and could be better explored in the code, thus:
Function um(ByVal TESTE As String) As Boolean
'código [...]
If TESTE = "Rodar Próxima" Then
um = True
End If
End Function
Function um(ByVal TESTE As String) As Boolean
'código [...]
If TESTE = "Rodar Próxima" Then
um = True
End If
End Function
Function DOIS(ByVal RODADOIS As Boolean) As Boolean
'código [...]
If RODADOIS Then
DOIS = True
End If
End Function
Function tres(ByVal DOIS As Boolean) As String
'código [...]
If DOIS Then
tres = "Rodou tudo!"
End If
End Function
And a Sub to call by spreadsheet, validating the result of each function:
Sub RodaTudo()
' Aqui chamará a Função UM, depois a DOIS (caso o resultado seja true) e depois a TRES (caso o resultado da DOIS seja true)
tres (DOIS(um("Rodar Próxima")))
' Ou pode-se fazer testes
If um("Rodar Próxima") Then ' Se verdadeiro rodar abaixo
dois(true)
End If
End Sub
P.S.: Subs can only receive values, but do not return values directly.