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

Résolu
Djaissih Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
 Djaissih -
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
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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 22 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Djaissih Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
les valeurs des coefficients ne sont-ils pas dans des cellules nommées?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 22 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 22 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Djaissih Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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 22 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Djaissih Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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