VBA – Appel / Exécution d’une Sous-Procédure à Partir d’une Autre Sous-Procédure

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

Ce tutoriel vous apprendra à 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 dans votre projet – cela peut faire gagner énormément de temps et rendre le code VBA beaucoup plus efficace.

Exécution d’une Sous-Procédure à Partir d’une Autre Sous-Procédure

Considérons les 3 sous-procédures ci-dessous :

Sub TestRoutine()
   ExécuterRoutine1
   ExécuterRoutine2
End Sub
Sub ExécuterRoutine1()
   MsgBox "Bonjour"
End Sub
Sub ExécuterRoutine2()
   MsgBox "La date d'aujourd'hui est " & Format(Date, "mm/dd/yyyy")
End Sub

Si nous exécutons la sous-procédure – TestRoutine – elle appellera ExécuterRoutine1 et ExécuterRoutine2 et 2 boîtes de messages 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 Call

Vous pouvez également utiliser l’instruction Call devant le nom de la procédure, afin de rendre votre code plus facile à lire. Toutefois, cela n’a aucun effet sur la façon dont le code est exécuté ou stocké.

Sub TestRoutine()
    Call ExécuterRoutine1
    Call ExécuterRoutine2
End Sub

Appel d’un Sous-Programme Avec des Arguments

Il est également possible d’appeler un sous-programme avec des arguments

Sub TestRoutine()
    ExécuterRoutine1 ("Mélanie")
    ExécuterRoutine2 ("Passe une belle journée")
End Sub
Sub ExécuterRoutine1(strNom As String)
    MsgBox "Bonjour " & strNom
End Sub
Sub ExécuterRoutine2(strMessage As String)
    MsgBox "La date d'aujourd'hui est " & Format(Date, "mm/dd/yyyy") & _ 
    vbCrLf & strMessage
End Sub

Appel d’un Sous-Programme Avec des Arguments Nommés

Si vous nommez vos arguments, vous n’êtes pas obligé de les transmettre dans le même ordre à vos sous-programmes.

Sub TestRoutine()
    ExécuterRoutine1 strMessage:="Comment allez-vous?", strNom:="Mélanie"
End Sub
Sub ExécuterRoutine1(strNom As String, strMessage As String)
    MsgBox "Bonjour " & strNom & vbCrLf & strMessage
End Sub

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA