Communication de la valeur d'une cellule à une variable paramètre d'une fonction

Résolu/Fermé
Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022 - 8 août 2021 à 16:48
 Djaissih - 10 août 2021 à 18:14
Bonjour,
Je souhaite écrire une fonction Z=f(X;Y) de la forme, par exemple : Z=a0+a1*X+a2*Y+a11*X^2+a22*Y^2+a12*X*Y
Je souhaite garder la main sur les valeurs des coefficients que j'inscris dans des cellules nommées afin, par d'autres biais de pouvoir les modifier à la demande.
Il est certes facile d'écrire la formule de manière traditionnelle dans une cellule de la feuille et, éventuellement, de la copier-coller à volonté, par exemple pour remplir une table de calculs en vue d'un graphique.
Je voudrais cependant utiliser cette fonction dans un programme VBA pour générer une série indexée par le temps, plus ou moins longue...
Je pense pouvoir utiliser une fonction VBA dont les paramètres sont X et Y, en prenant les valeurs des coefficients dans les cellules nommées mais je suis bloqué... (il est vrai que retraité depuis de nombreuses années, je n'ai plus pratiqué assidument et ma mémoire commence à présenter quelques failles !)
Merci à celles et ceux qui voudront bien me dépanner.

Configuration: Windows / Firefox 56.0

2 réponses

yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
8 août 2021 à 19:20
bonjour,
peut-être:
function Z(X as single, Y as single)
return [a0]+[a1]*X+[a2]*Y+[a11]*X^2+[a22]*Y^2+[a12]*X*Y
end function
1
Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022
9 août 2021 à 13:21
Oui, c'est bien la forme... mais je ne sais pas transmettre les valeurs des coefficients ai depuis la feuille vers la fonction et quand je l'utilise dans la feuille j'ai un message d'erreur #valeurs
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022
9 août 2021 à 13:29
les valeurs des coefficients ne sont-ils pas dans des cellules nommées?
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
9 août 2021 à 13:35
Function Z(X As Single, Y As Single)
    Z = [_a0] + [_a1] * X + [_a2] * Y + [_a11] * X ^ 2 + [_a22] * Y ^ 2 + [_a12] * X * Y
End Function
0
Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022
10 août 2021 à 10:57
Bonjour,
je n'y arrive toujours pas ! Vraisemblablement une (des) erreur(s) de syntaxe !
Comment pourrais-je transmettre mon classeur avec le code VBA pour une aide au débogage ?
Cordialement
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
10 août 2021 à 11:12
il suffit d'importer le classeur sur internet (cjoint.com, google drive, one drive, ...), et de partager ici un lien vers le fichier importé.
0
Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
10 août 2021 à 11:58
Mais oui, bien sûr... j'ai l'impression d'être à côté de mes pompes !

Voici le lien vers OneDrive :
https://onedrive.live.com/redir?resid=5A0FC3C4BC56962B!134821&authkey=!AJvXSkXTd3sQdKQ&ithint=file%2cxlsx&e=Bpx2cj

Merci .
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022
10 août 2021 à 14:52
Public Function Masse_Unitaire(Var1 As Single, Var2 As Single) As Single
 Masse_Unitaire = [coeff_0] + [coeff_1] * Var1 + [coeff_2] * Var2 + [coeff_11] * Var1 ^ 2 + [coeff_22] * Var2 ^ 2 + [coeff_12] * Var1 * Var2
End Function
0
Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
10 août 2021 à 15:27
Merci infiniment ! Je ne connaissais pas cette manière d'utiliser les cellules nommées et on apprend à tout âge ! Je vais pouvoir créer mon simulateur de fonctionnement.
Question subsidiaire : votre présentation du code me semble bien plus efficace que la présentation "basique" du VBE : est-ce une option de l'éditeur ou bien s'agit-il d'un greffon ?
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Djaissih Messages postés 23 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 11 janvier 2022
10 août 2021 à 16:57
Range("coeff_0")
fonctionne très bien également.

la présentation du code est faire par le forum, grâce à l'utilisation de balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

peux-tu marquer la discussion comme résolue?
0