Exemple d’utilisation de BYREF ET BYVAL dans Excel VBA

Vous pouvez passer des arguments à une procédure (fonction ou sous) par référence ou par valeur. Par défaut, Excel VBA transmet les arguments par référence. Comme toujours, nous utiliserons un exemple simple pour clarifier les choses.

Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivantes:

Dim x As Integer
x = 10
MsgBox Triple(x)
MsgBox x

Le code appelle la fonction Triple. C’est le résultat de la deuxième MsgBox qui nous intéresse. Les fonctions doivent être placées dans un module.

1. Ouvrez l’éditeur Visual Basic et cliquez sur Insérer, module.

2. Ajoutez les lignes de code suivantes:

Function Triple(ByRef x As Integer) As Integer
x = x * 3
Triple = x
End Function

Résultat lorsque vous cliquez sur le bouton de commande sur la feuille:

3. Remplacez ByRef par ByVal.

Function Triple(ByVal x As Integer) As Integer
x = x * 3
Triple = x
End Function

Résultat lorsque vous cliquez sur le bouton de commande sur la feuille:

Explication: Lorsque vous passez des arguments par référence, nous référençons la valeur d’origine. La valeur

de x (la valeur d’origine) est modifiée dans la fonction. Par conséquent, le deuxième MsgBox affiche une valeur de 30. Lors du passage d’arguments par valeur, nous transmettons une copie à la fonction. La valeur d’origine n’est pas modifiée. Par conséquent, la deuxième MsgBox affiche une valeur de 10 (la valeur d’origine).

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x