Bonjour,
Il faut que tu passes tes arguments par référence (ByRef), pour qu'ils soient modifiés par la procédure. Si tu les passes par valeur (ByVal) ce sont des copies de tes variables qui sont envoyées à la fonction.
Un petit exemple pour t'en convaicre
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub testByVal(ByVal valeur As Double)
valeur = 9
End Sub
Sub testByRef(ByRef valeur As Double)
valeur = 9
End Sub
Sub testMain()
Dim valeur As Double
valeur = 0
testByVal valeur
Debug.Print "Byval: " & valeur 'affiche 0
testByRef valeur
Debug.Print "ByRef: " & valeur 'affiche 9
End Sub |
D'autre part une remarque concernant la déclaration des tes variables:
dim dMoyenne, dMediane, dMax, dMin as Double
Dans cette instruction, seule dMin est déclarée en tant que Double, les autres seront de type Variant.
Bon WE.
Partager