Variable modifier

Résolu
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

1 réponse

  1. 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
    1. 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 ?
    2. Modérateur
      Tout à fait.
    3. Ok merci beaucoup pour l'explication :)