VBA - Renvoyer une valeur à partir d'une sous-procédure

Ce tutoriel vous apprendra comment renvoyer une valeur à partir d'une sous-procédure en VBA.

Une sous-procédure n'est pas conçue pour renvoyer une valeur - c'est à cela qu'est utilisée une procédure de fonction. Cependant, il peut arriver que vous exécutiez du code dans une sous-procédure et que vous deviez obtenir une valeur de cette sous-procédure. Pour ce faire, utilisez un module ou des variables globales ou une sous-procédure pour remplir une feuille Excel.

Utilisation de variables pour renvoyer une valeur

Vous pouvez déclarer des variables au niveau du module. Ce faisant, ces variables peuvent être utilisées n'importe où dans le module et les variables conservent leurs valeurs. Pour déclarer une variable au niveau du module, déclarez simplement la variable en haut de votre module de code :

123456789 Option ExpliciteDim dblQty comme DoubleSous-testA()'appelez le sous-test TestBAppel TestB'afficher la valeur de la variable dans la fenêtre du moduleDebug.Print dblQtyFin du sous-marin
1234 Sous-test B()'remplir la variable du moduledblQté = 900Fin du sous-marin

Pour les assembler, nous exécuterions TestA, qui à son tour appellerait TestB et nous donnerait la valeur de 900 dans la fenêtre immédiate.

Cela ne fonctionnerait que dans le module, car la variable a été déclarée à l'aide de l'instruction Dim au niveau du module.

Variable globale

Vous pouvez déclarer la variable à un niveau global pour l'utiliser dans tous les modules de votre projet.

Utilisation d'une sous-procédure pour remplir une feuille Excel

La sous-procédure ci-dessous remplira directement la plage A1 à C1 dans votre feuille Excel, renvoyant ainsi des valeurs aux cellules de la sous-procédure.

12345 Sous-PopulationRange()Plage("A1") = "Produit"Plage("B1") = "Quantité"Plage("C1") = "Coût"Fin du sous-marin

Vous pouvez ensuite référencer ces valeurs dans une autre procédure en référençant les valeurs des cellules :

1234567 Sous-RécupérationPlage()Dim Product as String, Quant as long, Cost as doubleProduit = Gamme ("A1")Quant = Plage("B1")Coût = Gamme ("C1")Fin du sous-marin

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

wave wave wave wave wave