saadmechiche
XLDnaute Junior
Bonjour , j'aimerai savoir ce que signifie byval ; je la constate dans beaucoup de fonction
Merci
Merci
Utilisé avec ces objets, ByVal réfère à un objet et non à une méthode de passation de paramètres. Chacun des objets cités ci-dessus a une propriété Value que vous pouvez définir. Vous pouvez également passer cette valeur vers ou à partir d'une fonction. Comme vous pouvez modifier la valeur des membres de l'objet, les événements produisent des résultats cohérents avec le comportement de ByRef, même si la syntaxe de l'événement indique que le paramètre est ByVal.
Sub Test()
Dim Donnee As Integer
Donnee = 1
MaProcedure_1 Donnee
MsgBox Donnee
MaProcedure_2 Donnee
MsgBox Donnee
MaProcedure_3 Donnee
MsgBox Donnee
End Sub
'Passe la référence en argument:
'(la donnée initiale sera modifiée et prendra la valeur
'résultant de l'argument).
'C'est la variable 'Donnee' qui est transmise à la sous procédure.
'La valeur réelle de cette dernière peut, de ce fait, être modifiée
'par la procédure à laquelle elle a été passée.
Sub MaProcedure_1(ByRef x As Integer)
x = x * 2
End Sub
'Passe la valeur en argument:
'(la donnée initiale ne sera pas modifiée)
'C'est une copie de la variable qui est transmise à la sous procédure.
'La valeur réelle de cette dernière n'est donc pas modifiée par la procédure à laquelle
'elle est passée.
Sub MaProcedure_2(ByVal y As Integer)
y = y * 2
End Sub
'ByRef est la valeur par défaut si elle n'est pas spécifiée.
Sub MaProcedure_3(z As Integer)
z = z * 2
End Sub