OVH Cloud OVH Cloud

fonction f(x)

4 réponses
Avatar
Olivier1970
Bonsoir,
je viens d'avoir l'idée suivante :
J'ai creer dans un module la fonction suivante :

Function f(x)
f = 3 * x * x + 5 * x - 3
End Function

je peux ainsi utiliser dans ma feuille cette fonction comme en math :
en A1 : l'abscisse, en B1 : l'ordonnée = f(A1)

Cela me convient mais j'aimerai mieux.
En effet lorsque j'ai besoin de changer la fonction, je suis obligé d'aller
le faire dans le module.
Y-a-t-il une possibilité pour rentrer la fonction (en B2 par exemple) et
d'indiquer à la fonction du module d'utiliser la cellule B2 ? Du style (mais
ça, ça marche pas)
B2 : 3 * x * x + 5 * x - 3
et dans le module
Function f(x)
f = cells(2,2).value
End Function

Merci

4 réponses

Avatar
FxM
Bonsoir,
Bonsoir,

Dans ta formule, Excel doit remplacer x par sa valeur
--> Application.Substitute(Cells(2, 2), "x", x)

Ensuite, il va évaluer le résultat. Pour cela, il faut le faire précéder
du signe
Ce qui donne :
Public Function f(x)
f = Evaluate("=" & Application.Substitute(Cells(2, 2), "x", x))
End Function

@+
FxM





Bonsoir,
je viens d'avoir l'idée suivante :
J'ai creer dans un module la fonction suivante :

Function f(x)
f = 3 * x * x + 5 * x - 3
End Function

je peux ainsi utiliser dans ma feuille cette fonction comme en math :
en A1 : l'abscisse, en B1 : l'ordonnée = f(A1)

Cela me convient mais j'aimerai mieux.
En effet lorsque j'ai besoin de changer la fonction, je suis obligé d'aller
le faire dans le module.
Y-a-t-il une possibilité pour rentrer la fonction (en B2 par exemple) et
d'indiquer à la fonction du module d'utiliser la cellule B2 ? Du style (mais
ça, ça marche pas)
B2 : 3 * x * x + 5 * x - 3
et dans le module
Function f(x)
f = cells(2,2).value
End Function

Merci




Avatar
Olivier1970
Merci, c'est exactement ça.

"FxM" a écrit dans le message de news:
%
Bonsoir,
Bonsoir,

Dans ta formule, Excel doit remplacer x par sa valeur
--> Application.Substitute(Cells(2, 2), "x", x)

Ensuite, il va évaluer le résultat. Pour cela, il faut le faire précéder
du signe >
Ce qui donne :
Public Function f(x)
f = Evaluate("=" & Application.Substitute(Cells(2, 2), "x", x))
End Function

@+
FxM





Bonsoir,
je viens d'avoir l'idée suivante :
J'ai creer dans un module la fonction suivante :

Function f(x)
f = 3 * x * x + 5 * x - 3
End Function

je peux ainsi utiliser dans ma feuille cette fonction comme en math :
en A1 : l'abscisse, en B1 : l'ordonnée = f(A1)

Cela me convient mais j'aimerai mieux.
En effet lorsque j'ai besoin de changer la fonction, je suis obligé
d'aller le faire dans le module.
Y-a-t-il une possibilité pour rentrer la fonction (en B2 par exemple) et
d'indiquer à la fonction du module d'utiliser la cellule B2 ? Du style
(mais ça, ça marche pas)
B2 : 3 * x * x + 5 * x - 3
et dans le module
Function f(x)
f = cells(2,2).value
End Function

Merci




Avatar
AV
......... Pour cela, il faut le faire précéder du signe
Jps dirait que c'est superfétatoire ;-)


AV

Avatar
garnote
Salut Olivier,

Formate "texte" la cellule contenant ton expression en x.
Ainsi, tu pourras entrer une fonction commençant par "-"
sans avoir une "mauvaise surprise".

Public Function f(x)
Application.Volatile
fc = Application.Substitute(Cells(2, 2), "-", "+0-")
f = Evaluate(Application.Substitute(fc, "x", x))
End Function

Serge

"Olivier1970" a écrit dans le message de news: 457739ea$0$21150$
Bonsoir,
je viens d'avoir l'idée suivante :
J'ai creer dans un module la fonction suivante :

Function f(x)
f = 3 * x * x + 5 * x - 3
End Function

je peux ainsi utiliser dans ma feuille cette fonction comme en math :
en A1 : l'abscisse, en B1 : l'ordonnée = f(A1)

Cela me convient mais j'aimerai mieux.
En effet lorsque j'ai besoin de changer la fonction, je suis obligé d'aller le faire dans le module.
Y-a-t-il une possibilité pour rentrer la fonction (en B2 par exemple) et d'indiquer à la fonction du module d'utiliser la cellule
B2 ? Du style (mais ça, ça marche pas)
B2 : 3 * x * x + 5 * x - 3
et dans le module
Function f(x)
f = cells(2,2).value
End Function

Merci