Re
Hervé un petit exemple sera peut être plus clair
Sub MaValeur ()
Dim X As Integer
X = 10
Carre(X)
MsgBox(X)
End Sub
Sub Carre(nombre As Integer)
nombre = nombre*nombre
End Sub
ceci te permet d'élever 10 au carré, réponse 100
Quand tu appelles la MsgBox, quelle est la valeur de X ? 10 ou 100 ? Evidemment ce sera 100 et ce changement de valeur pour cette variable X peut avoir des conséquences non négligeables sur la suite de ton projet
N'ayant pas défini le comportement de la variable X, par défaut il s'agira d'un comportement par référence (ByRef), donc la procédure agit directement sur X et non sur une copie
Pour empêcher que la valeur prise temporairement par X (soit 100) devienne la nouvelle valeur , mais pour l'obliger à être toujours égale à la valeur initiale 10, il te suffit de travailler avec une copie de cette variable et pour cela il te suffit de la définir avec ByVal
Sub Carre(ByVal nombre As Integer)
Voila, j'espère que ce sera plus clair comme cela
Au plaisir de te croiser sur le Forum
Message édité par: Jacques87, à: 13/03/2006 10:46