[VBA]déclaration d'une fonction mathématique

Messages postés
3
Date d'inscription
vendredi 27 janvier 2012
Statut
Membre
Dernière intervention
29 janvier 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

je vous explique mon problème:

Je voudrais faire un programme me permettant d'utiliser une fonction mathématique.
Pour cela, j'ai crée une petite fonction:

Function func(p_n) As Double
func = p_n * p_n + p_n 'ou p_n est ma variable.
End Function

Cette fonction marche bien mais je suis obligé d'écrire ma fonction mathématique dans ma macro. J'aimerais pouvoir l'écrire dans une cellule du tableur. Et la ça se complique.

J'ai essayé func = Cells(1,1).Value mais ça marche pas. Après j'ai essayé d'utiliser la fonction CDbl pour transformer l'intérieur de ma cellue en double ( vu qu'il revient comme un string).
Mais ça marchetoujours pas.
Auriez vous une peite idée svp?

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
1) Tu développes donc sous VBA (le VBA de Excel) et non sous VB6 (la présente section) !
Il est important de choisir avec le plus grand soin la section dans laquelle on ouvre une discussion. C'est loin d'être un "luxe". Veille dorénavant à le faire, s'il te plait.
2) J'aimerais pouvoir l'écrire dans une cellule du tableur.
ce qui veut dire : une fonction personnalisée.
La chose est possible, mais il va nous falloir savoir d'où tu extrais la valeur p_n. Pourquoi ? car si de la cellule à laquelle s'applique cette fonction ===>> ru es en plein le le sac de figure d'un chien qui se mord la queue".
Il nous faut également connaître le format de la cellule recevant le résultat de la fonction et celui de la cellule d'où provient la valeur p_n (ou son type), vi une variable ou constante.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
3
Date d'inscription
vendredi 27 janvier 2012
Statut
Membre
Dernière intervention
29 janvier 2012

Bonjour,

désolé pour VB6 je pensais que c'était pareil que VBA!

Alors en fait j'écris p_n * p_n + p_n dans la cellule et je fais varier la valeur de p_n dans une autre fonction ( dans une boucle for où j'écris p_n = Valinit +i. Mon valinit est une valeur choisie par l'utilisateur).

Pour ce qui s'agit du format de la cellule, je vois pas trop ce que tu veux dire... Parce que le résultat de la fonction ne retourne jamais dans une cellule, je l'utilise juste dans mon programme principal ensuite.

J'épère que j'ai été assez clair pour répondre...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
je fais varier la valeur de p_n dans une autre fonction ( dans une boucle for où j'écris p_n = Valinit +i. Mon valinit est une valeur choisie par l'utilisateur)

Montre cette fonction, donc (en précisant d'où vient Valinit, hein !)
Parce que le résultat de la fonction ne retourne jamais dans une cellule, je l'utilise juste dans mon programme principal ensuite.

est en contradiction avec :
J'aimerais pouvoir l'écrire dans une cellule du tableur. Et la ça se complique.

On parle alors de quoi, là ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Allons bon...
Je commence à deviner :
[quote]Cette fonction marche bien mais je suis obligé d'écrire ma fonction mathématique dans ma macro. J'aimerais pouvoir l'écrire dans une cellule du tableur. Et la ça se complique.

Tel qu'écrit, veut dire mettre la fonction dans une cellule ! (comme une formule Excel, donc)

Et tu veux peut-être dire autre chose que cela ?
Alors vas-y ===>> dis-le, mais clairement.
On attend ...
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
3
Date d'inscription
vendredi 27 janvier 2012
Statut
Membre
Dernière intervention
29 janvier 2012

je veux juste écrire p_n * p_n + p_n dans une cellule du tableur et que ma Function func(p_n) aille chercher le p_n * p_n + p_n qui est dans la cellule du tableur
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je regrette, mais ce que tu dis là est très loin d'être clair.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient