VBA problème de variable

fraggahh

chapitre.vin
Hello,

j'éprouve à nouveau un problème avec mes variables sous VBA/Excel.
En fait je ne parviens pas a comprendre pourquoi ma variable que je passe en paramètre dans une fonction prend la valeur des opérations effectuée dans cette fonction.
Un morceau de code est plus parlant je pense :


Sub testfct()

Dim i, j, k As Integer


i = 0
k = i
j = 0
j = abcd(k)
MsgBox "j " & j & "k " & k & " et i " & i
et dans le même module :

Function abcd(z as Integer)
z = z +10
adcd = z
end Function
Le messagebox m'affiche : "j 10 k 10 et i 0
alors que normalement je devrais avoir k 0, mais il prend aussi la valeur du "z"
 

ailless

Asimov, Sagan, Carlin, Hitchens
Peut-etre que tu passes une adresse avec k non ? Ca me parait logique.

tu donnes l'adresse de k a abcd qui va faire k = 0 + 10 et tu retournes la valeur de k qui est assignee a j

Maintenant, j'ai jamais fait de VB donc je sais pas comment ca fonctionne vraiment...

T'as un moyen de mettre le parametre de abcd en constante ? Si oui, t'auras une erreur a la compilation/interpretation car t'essayeras de modifier une variable constante.
 
1er
OP
fraggahh

fraggahh

chapitre.vin
j'ai rajouté un byval dans l'en-tête de abcd devant le z as integer

bête langage !
 

ailless

Asimov, Sagan, Carlin, Hitchens
No problem, idiot.
 
1er
OP
fraggahh

fraggahh

chapitre.vin
No problem, idiot.
ouais bha si tu lui spécifie rien (ni de byref ou byval) il prend byref pas défaut... même le C ne fait pas ca, et je déteste le C pourtant !
 
Haut