Ce tutoriel vous apprendra comment appeler une sous-procédure à partir d'une autre sous-procédure en VBA
Il est très utile d'écrire du code qui peut être utilisé de manière répétitive et appelé à partir de plusieurs sous-procédures de votre projet - cela peut faire gagner énormément de temps et rendre le code VBA beaucoup plus efficace.
Exécuter une sous-procédure à partir d'une autre sous-procédure
Considérez les 3 sous-procédures ci-dessous :
1234 | Sous-routine de test()ExécuterRoutine1ExécuterRoutine2Fin du sous-marin |
123 | Sous RunRoutine1()MsgBox "Bonjour"Fin du sous-marin |
123 | Sous RunRoutine2()MsgBox "La date d'aujourd'hui est " & Format(Date, "mm/dd/yyyy")Fin du sous-marin |
Si nous exécutons la sous-procédure - TestRoutine - elle appellera RunRoutine1 et RunRoutine2 et 2 boîtes de message apparaîtront.

Il n'y a pas de limite au nombre de sous-procédures que vous pouvez appeler à partir d'une autre sous-procédure.
Utilisation de l'instruction d'appel
Vous pouvez également utiliser l'instruction d'appel devant le nom de la procédure, pour faciliter la lecture de votre code. Cependant, cela n'a aucun effet sur la façon dont le code est exécuté ou stocké.
1234 | Sous-routine de test()Appeler RunRoutine1Appeler RunRoutine2Fin du sous-marin |

Appeler un sous-marin avec des arguments
Il est également possible d'appeler un sub avec des arguments
1234 | Sous-routine de test()RunRoutine1 ("Mélanie")RunRoutine2 ("Passez une belle journée")Fin du sous-marin |
123 | Sous RunRoutine1(strName en tant que chaîne)MsgBox "Bonjour " & " & strNameFin du sous-marin |
123 | Sub RunRoutine2(strMessage as String )MsgBox "La date d'aujourd'hui est " & Format(Date, "mm/jj/aaaa") & VbCrLf & strMessageFin du sous-marin |

Appeler un Sub avec des arguments nommés
Si vous nommez vos arguments, vous n'avez pas à les transmettre dans le même ordre à vos sous-routines.
123 | Sous-routine de test()RunRoutine1 strGreeting:="Comment vas-tu?", strName:="Melanie"Fin du sous-marin |
123 | Sub RunRoutine1(strName en tant que chaîne, strGreeting en tant que chaîneMsgBox "Bonjour" & " & strName & vbCrLf & strGreetingFin du sous-marin |
