Pb VBA Function et argument Help !!!!

ben13071979 Messages postés 4 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 27 décembre 2004 - 23 déc. 2004 à 14:59
ben13071979 Messages postés 4 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 27 décembre 2004 - 23 déc. 2004 à 16:47
Voila j'ai un probleme de fonction qui utilise d'autres fonctions !!!!
par exemple ma premiere fonction est :

function a(s as double, t as double, k as double, v as double)

a=.......

end function

ma seconde fonction:

function b(s as double, t as double, k as double, v as double)

b=a(s,t-1,k,v)-a(s,t,k,v)

end function

Mon probleme c'est que la fonction b ne retoure que a(s,t-1,k,v) !!!!

Comment puis je corriger cela ?

Merci d'avance

6 réponses

cs_krafi Messages postés 48 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 28 janvier 2006
23 déc. 2004 à 15:30
salut,

Une fonction doit avoir un type de retour ( as double, as integer, as string etcc...), sinon c'est une procédure.

donc :

Public Function a(s as double, t as double, k as double, v as double) As Double

a=.......

End Function

Public Function b(s as double, t as double, k as double, v as double) As Double

b= a(s,t-1,k,v) - a(s,t,k,v)

End function

Voila, ça devrai mieux fonctionner

Bonne Continuation
0
ben13071979 Messages postés 4 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 27 décembre 2004
23 déc. 2004 à 15:53
non même avec ça, cela ne fonctionne pas
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
23 déc. 2004 à 15:54
krafi < Erreur !!! Une fonction dont on ne précise pas le type de retour n'est pas une procédure (qui ne peut se déclarer que avec le mot-clé Sub !!) C'est seulement une fonction qui retourne un Variant, qui est le type par défaut en VB !
Sinon, je pense comme toi que le pb vient du manque de précision du type retour de A() et de B()
Sinon tu peux toujorsu faire une execution pas à pas de ta fonction B(), tu verras bien si tu entres deux fois dans A() ou pas : Cela m'étonnerait fort que tu n'y rentre pas 2 fois, d'ailleur !!
Et est-ce que A(s,t,k,v) ne serait pas égal à zéro, au cas ou ???

Christophe R.
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
23 déc. 2004 à 16:32
Salut as tu essayé comme ceci

b= (a(s,t-1,k,v) - a(s,t,k,v) )

____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
23 déc. 2004 à 16:42
Ajouter des aprenthèse ne changera malheureusement rien au pb !!

Christophe R.
0
ben13071979 Messages postés 4 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 27 décembre 2004
23 déc. 2004 à 16:47
en fait il fallait utiliser byval pour les fonctions pour eviter que les arguments ne soients modifiés d'appel en appel.
Merci quand même
0
Rejoignez-nous