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

guynux Messages postés 3 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 29 janvier 2012 - 27 janv. 2012 à 19:44
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 29 janv. 2012 à 13:09
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 janv. 2012 à 19:53
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
0
guynux Messages postés 3 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 29 janvier 2012
28 janv. 2012 à 18:59
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...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 janv. 2012 à 19:45
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 janv. 2012 à 20:21
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
0

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

Posez votre question
guynux Messages postés 3 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 29 janvier 2012
29 janv. 2012 à 11:52
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 janv. 2012 à 13:09
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
0
Rejoignez-nous