cs_dikanete
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention20 septembre 2009
-
28 févr. 2008 à 23:45
cs_dikanete
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention20 septembre 2009
-
1 mars 2008 à 15:23
Bonsoir à tous,
voici mon prb:
dans une instruction "Private" je désire attribuer le résultat d'une procédure "fonction" à une TextBox.
j'ai pensé à ce code qui me parait assez logique mais ça ne marche pas:
Private Sub CommandButton_click()
TextBox.Value = Function(x,y,z,)
End Sub
J'ai trouvé un code qui fait appel à:
Private Sub CommandButton_click()
TextBox.Value = (Pricers.Function(x,y,z,)
End Sub
Je ne comprend pas le terme "Pricers" et dans les deux cas rien ne marche.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 29 févr. 2008 à 00:33
Remplace
TextBox.Value = Function(x,y,z,)
par
TextBox.Text = option_fin(x,y,z,)
Une Function devrait en principe retourner une valeur d'un type spécifié
Dans ton cas, comme il n'y a pas de type de valeur, elle retournera un Variant
Si tu sais qu'elle devrait retourner un nombre, disons, tu devrais l'écrire comme ceci
Function option_fin(x, y, z) As Double si c'est un nombre réel,
sinon As Integer, As Long, As String si c'est une chaîne, ....
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 févr. 2008 à 11:09
Re
Il faudra peut-être aussi ajouter le mot Public devant ta déclaration de fonction afin que tous les éléments de ton projet puisse y accéder (et pas simplement les codes appartenant à ce module) :
Public Function option_fin(x, y, z) As Double
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 févr. 2008 à 17:14
salut,
çà serait pas juste une erreur de "end function attendu" ?
parce que...
Function option_fin(x, y, z)
la formule
End sut même avec End sub, VB va râler
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Public Function BS_STD(TypeOption, S, K, r, sigma, T) As Double
1 TypeOption
2 S
3 K
4 r
5 sigma
6 T
beh ouai le message est clair...
6 arguments attendus et tu en donnes 7 :)
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 févr. 2008 à 00:04
Salut
En fait, la fonction dont le nom est très mal choisi "Function" appartient à un module ou une classe nommé "Pricers".
Nom très mal choisi car "Function" est un mot réservé des langages de programmation.
Alors, qu'elle est le fond de ta question ?
Est-ce le résultat de "Function" qui t'intéresse ou bien la méthode d'accès ?
En tous les cas, merci pour la clarté de ton ennoncé, ça fait plaisir de ne pas être obligé de décrypter.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_dikanete
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention20 septembre 2009 29 févr. 2008 à 00:24
Salut et merci pour ta réponse.
je vais essayer d'éclaircir mon prb. le voici en deux mots:
j'ai crée une procédure Function dans mon module qui comporte un calcul d'évaluation d'option financière.
Function option_fin(x, y, z)
la formule
End sut
j'ai créé une Userform pour rentrer les différents parametres. je désire faire apparaître le résultat de mon calcul dans la TextBox finale de ma UserForm en cliquant sur la CommandButton1
Pour répondre à ta question, j'aimerais que mon résultat s'affiche lorsque je clique sur ma CommandButton1.
pour ceci j'ai créé une instruction Private Sub dans le code de ma UserForm avec comme code:
Private Sub CommandButton_click()
x = val(textBox1.value)
y=val(textBox2.value)
.
.
TextBox.Value = Function(x,y,z,)
End Sub
ça ne marche pas.
je suis un peu largué et je suis débutant. j'espère que mon message convient.
merci encore pour l'aide que tu pourras m'apporter.
cs_dikanete
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention20 septembre 2009 1 mars 2008 à 14:23
Merci pour toutes ces réponses,
Il est vrai que mon message n'était encore une fois par très clair.
Je viens de me relire et j'ai fait une faute de frappe et ce n'est pas <strike>End Sut</strike> mais End Function évidemment.
j'ai indiqué Public et également as Double pour identifier le type de valeur
concernant le messgae d'erreur il dit:
"Erreur de compilation, nombre d'argument incorrect ou affectation de propriété incorrecte"
voici mes codes:
Public Function BS_STD(TypeOption, S, K, r, sigma, T) As Double
....
End Function
Private Sub BTN_prix_BS_click()
S = Val(txt_S.Value)
K = Val(txt_K.Value)
r = Val(txt_r.Value)
sigma = Val(txt_sigma.Value)
txt_prix_BS.Text = BS_STD(TypeOption, S, K, r, sigma, Maturité(), 4)
End Sub
L'erreur se situe au niveau de l'appelation de mon instruction.