Appel VBA / Exécuter un sous-programme à partir d'un autre sous-programme

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

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave