Variable modifier

Résolu/Fermé
quent - 22 août 2015 à 16:13
 quent - 22 août 2015 à 16:24
Bonjour,

J'ai remarquer quelque chose qui m'étonne. Dans le code suivant :

Sub test()
Dim var As Integer
Dim var2 As Integer
var = 3
var2 = test2(var)
MsgBox (var)
End Sub

Function test2(var1)
var1 = 5
test2 = var1
End Function


La variable var1 dans la fonction test2 est censé être une copie de var non ?
Pourtant au moment ou la fonction modifie var1, elle modifie aussi var et ainsi le msgbox affiche 5.
Est-ce un bug ou quelque chose que je n'ai pas compris ?
J'utilise Excel2013.

Merci d'avance pour vos réponses
A voir également:

1 réponse

ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
22 août 2015 à 16:18
Bonjour

Aide excel
Tous les arguments sont passés aux procédures par référence, sauf indication contraire. Cette méthode est efficace en ce sens que le temps de passage des arguments et l'espace mémoire qu'ils occupent dans une procédure (4 octets) sont les mêmes quel que soit le type de données de l'argument.

Essaies en passant le paramètre var par valeur à la fonction test2
Function test2(ByVal var1)

Cordialement
0
Merci ça marche ! Mais alors si j'ai bien compris ce n'était pas une copie qui était envoyer a la fonction mais quelque chose comme un pointeur ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
22 août 2015 à 16:22
Tout à fait.
0
Ok merci beaucoup pour l'explication :)
0