|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Étudiant Inscription : février 2012 Messages : 4 ![]() |
Bonjour!
je vous explique mon problème: j'ai créer la fonction suivante: Code :
Cependant, je suis obligé de rentrer dans ma macro si je veux changer ma fonction à étudier. J'aimerais pouvoir la changer directement depuis mon tableur. J'ai essayé de faire fonc=Cells(1,1).value où j'ai écris dans la cellule A1: x*x mais cela ne marche pas. Je pense que c'est dû au fait que j'ai déclaré fonc(x) comme un double et quand j'appelle la cellule A1 elle revient comme un string. Je n'ai vraiment pas d'idées pour corriger ce problème Pouvez vous m'aider svp? |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Si j’ai bien compris, tu cherches à faire une fonction personnelle. La fonction doit être placée dans un module standard. Dans VBE, Modules / Module 1 tu copies Code :
- dans la feuille, en A1 par exemple, tu places ton nombre x (tu saisis 12 par exemple) - dans la feuille, en B1 par exemple, tu écris = =fonc(A1) et tu obtiens le résultat (144). Tu peux en profiter pour regarder la fonction PUISSANCE dans l’aide EXCEL. Voici un lien sur les fonctions personnelles http://silkyroad.developpez.com/vba/fonctions/ Cordialement. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : février 2012 Messages : 4 ![]() |
Bonjour,
non ce n'est pas exactement ça j'aimerais écrire n'importe quelle fonction dans A1 ( par exemple x*x ou sin(x)...) et ensuite calculer f(12) (par exemple)dans mon programme principlal après avoir rempli la cellule A1 |
|
|
00
|
|
|
#4 | |||
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonsoir,
Citation:
(2) Appeler la fonction : Code :
Le principe est qu'elle est capable d'appeler les fonctions présente dans Worksheetfunctions (SIN, COS ...). Mais pas les fonctions françaises SOMME, ET ... Utiliser leur équivalents SUM, OR ... Testé sur les formules suivantes en A1 : - (x)*(x) - (x)/(1 + (x)) - sin(2*pi()*(x)) |
|||
|
|
20
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : février 2012 Messages : 4 ![]() |
Bonjour,
merci pour ta réponse! La fonction que tu m'as donné marche bien. Le seul problème c'est qu'elle fonctionne uniquement pour les entiers. Dès que je met un décimal, ça ne marche pas. A vrai dire je ne comprend pas vraiment pourquoi puisque tu déclares x comme un double dans dans la function fonc. Aurais tu une idée? |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonjour,
Si tu utilise le séparateur décimal "," ceci devrait résoudre le problème. Code :
|
||
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Étudiant Inscription : février 2012 Messages : 4 ![]() |
Merci beaucoup!
tu m'as rendu un grand service! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com