OVH Cloud OVH Cloud

call et fonction

3 réponses
Avatar
Loulou
Bonjour à tous
J'ai fait un programme dans la première partie
j'ai placé option explicit avec une variable public pcoutb
Jai placé dans la première partie du programme un call trim
dans ce call trim je le revoie à un autre call calcul où j'ai placé ma
variable pcoutb mais il me renvoie pcoutb vide.
Pourtant dans call trim pcoutb à une valeur mais dès qu'il tombe call calcul
la valeur tombe à une valeur nul.
Qu'est-ce que je dois faire pour qu'il considère ma valeur pcoutb de mon
option explicit.

Merci d'avance
Louise

3 réponses

Avatar
Zoury
Salut Louise! :O)

J'ai fait un programme dans la première partie
j'ai placé option explicit avec une variable public pcoutb



dans un formulaire ou dans un module? quel est son nom?


Jai placé dans la première partie du programme un call trim



dans un formulaire ou dans un module? quel est son nom? a-t-il un Option
Explicit?


dans ce call trim je le revoie à un autre call calcul où j'ai placé ma
variable pcoutb mais il me renvoie pcoutb vide.



dans un formulaire ou dans un module? quel est son nom? a-t-il un Option
Explicit?


assure toi d'avoir placé des Option Explicit dans le haut de *chacun* de tes
fichiers et déclare pcoutb dans le haut d'un *module*

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
Patrice Henrio
Plus généralement il y a deux façons de passer des paramètres : byVal et
ByRef.
Par valeur, on copie la valeur de la varaible qui sera utilisée dans la
fonction ou la procédure. au retour on récupère la valeur initiale. Donc si
le variable n'est pas initialisée au départ et s'initialise dans la
fonction, au retour de celle-ci elle ne sera toujours pas initialisée.
Par référence, c'est la variable elle-même qui est passée. Au retour on a la
valeur modifiée.
Enfin, en général, une fonction ne devrait pas modifier ses paramètres et
renvoyer un résultat.

Ex :
Sub P1(ByVal Variable as Integer)
Variable=1
End Pro
Sub P2(ByRef Variable as Integer)
Variable=2
End Sub
Function F1() as integer
F1=3
End Function


Dans une sub Main cela donne
Variable=0
P1(Variable)
'Au retour Variable vaut toujours 0
P2(Variable)
'Au retour Variable vaut 2
Variableñ
'Au retour variable vaut 3



"Zoury" a écrit dans le message de
news:%
Salut Louise! :O)

> J'ai fait un programme dans la première partie
> j'ai placé option explicit avec une variable public pcoutb

dans un formulaire ou dans un module? quel est son nom?


> Jai placé dans la première partie du programme un call trim

dans un formulaire ou dans un module? quel est son nom? a-t-il un Option
Explicit?


> dans ce call trim je le revoie à un autre call calcul où j'ai placé ma
> variable pcoutb mais il me renvoie pcoutb vide.

dans un formulaire ou dans un module? quel est son nom? a-t-il un Option
Explicit?


assure toi d'avoir placé des Option Explicit dans le haut de *chacun* de


tes
fichiers et déclare pcoutb dans le haut d'un *module*

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/




Avatar
ng
Salut,

Peut être que voir ton code nous aiderait davantage ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

Loulou a écrit :

Bonjour à tous
J'ai fait un programme dans la première partie
j'ai placé option explicit avec une variable public pcoutb
Jai placé dans la première partie du programme un call trim
dans ce call trim je le revoie à un autre call calcul où j'ai placé
ma variable pcoutb mais il me renvoie pcoutb vide.
Pourtant dans call trim pcoutb à une valeur mais dès qu'il tombe call
calcul la valeur tombe à une valeur nul.
Qu'est-ce que je dois faire pour qu'il considère ma valeur pcoutb de
mon option explicit.

Merci d'avance
Louise