Récupération des coefficients de deux courbes sur un graphiques

Bonjour,

Je rencontre un problème que je ne suis pas capable de résoudre avec mes connaissances en VBA…

J’ai automatisé un programme permettant de venir lire les coordonnées d’un point d’intersection entre deux courbes différentes sur un graphique (une linéaire et une exponentielle).

Mon programme fonctionne grâce à une valeur cible, cependant, pour qu’il fonctionne, les utilisateurs doivent venir inscrire les coefficients des deux différentes courbes.

Exemple : sur le graphique on obtient deux courbes qui se croisent, l’une linéaire (=562x-852.3) et l'autre exponentielle (=253.6.e^(-5.2x))

Dans ce cas et dans des cases dédiées à ce programme, les utilisateurs viennent rentrer les coefficients a, b, c et d de la forme « ax+b » et « c.e^(dx) », dans notre cas, ils doivent inscrire a=562, b=-852.3, c=253.6 et d=-5.2.

Le graphique comprenant les deux courbes se construit tout seul lorsque l’utilisateur rentre d’autres informations nécessaires préalablement.

J’aimerai pouvoir automatiser la récupération de ces coefficients a, b, c et d et qu’ils puissent s’écrire séparément dans des cases choisies afin de pouvoir venir les récupérer pour mon programme.

Si quelqu’un pourrait m’aider, j’ai essayé de me documenter sur le sujet mais mes tentatives n’ont pas été concluantes malheureusement.

Merci d’avance pour votre aide, je reste à disposition pour tout autre demande d’informations complémentaires.

Tout va bien dans la présentation générale, sauf dans l'expression du besoin quand vous écrivez :

J’aimerai pouvoir automatiser la récupération de ces coefficients a, b, c et d et qu’ils puissent s’écrire séparément dans des cases choisies afin de pouvoir venir les récupérer pour mon programme.

Je n'ai aucune idée de ce que vous voulez faire : votre fichier me semble indispensable.

Je me suis peut-être un peu mal exprimé, je ne peux pas vous transmettre mon fichier il est confidentiel.

Je vais tenter d'être plus précis. J'obtiens un graphique qui se construit automatiquement et qui comporte deux courbes, un de forme linéaire "ax+b" et une de frome exponentielle "c.e^(dx)".

J'aimerais avoir un programme permettant d'inscrire dans des cellules sur la même feuille que celle qui contient mon graphique, les valeurs des coefficients a, b, c et d.

Par exemple : en B20 : a ; en B21 : b ; B22 : c et B23 : d

Car ensuite j'ai créé un programme qui me permet avec l'aide de ces coefficients de trouver un point d'intersection et d'en lire les coordonnées.

Aujourd'hui, les utilisateurs sont obligés de venir noter manuellement la valeur des coefficients qui s'affiche sur le graphique, et cela peut sembler parfois compliqué pour certaines personnes donc j'aimerai pouvoir faciliter l'utilisation de mon fichier en récupérant automatiquement ces coefficients.

Dites moi si c'est plus explicite.

Là les choses sont plus claires. En fait, un formulaire avec quatre zones de saisie vous irait ?

Et bien justement j'aimerai que les coefficients des courbes s'inscrivent automatiquement dans les cases de mon choix lors du lancement du programme pour que les utilisateurs n'ai pas à le faire manuellement mais juste en lançant le programme.

Un petit exemple très facile à adapter :

21classeur1.xlsm (18.76 Ko)

Merci pour votre réponse mais ce n'est pas totalement cela dont j'ai besoin , je vous envoi un fichier d'exemple ou l'on aperçoit bien les deux courbes assimilées à des courbe de tendance se croiser.

J'aimerais qu'un programme qui se lancerait par un bouton macro comme vous m'avez envoyez précédemment vienne inscrire les coef a b c et d, des deux courbes de tendance.

Ce que vous m'avez envoyé est déjà présent dans mon fichier, c'est aux utilisateurs de rentrer les valeurs des coefficients mais j'aimerai justement pouvoir automatiser ceci.

17exemple.xlsx (15.00 Ko)

On y est mais ça ne m'avance pas. Ce fichier est vide, les courbes sont inertes, etc.

Non il n'est pas vide il comprend un exemple de graphique que j'obtiens, je vous glisse ci-dessous un fichier WORD comprenant :

- En première page : un screen de ce que l'on obtient avant le lancement du programme (programme sur lequel je demande de l'aide aujourd'hui car je ne sais pas comment faire)

- En seconde page : ce que j'aimerai que le programme fasse en venant inscrire les coefficients des courbes dans les cases

Comprenez-vous ma demande ?

8exemple.docx (97.87 Ko)

Tout ce que je vois dans ce fichier Word, c'est qu'on a récupéré les constantes a = - 375, b = 4125, c = 1957,4 et d = 0,0511 soit dans un formulaire comme celui que je vous ai proposé, soit dans d'autres feuilles, et qu'on les a collées dans la plage B3:B6 de la feuille contenant le graphe.

Lequel graphe est le même avant et après application du programme.

Je ne vais pas occuper inutilement le terrain alors que d'autres ont peut-être compris ce que vous cherchez à faire.

Oui voilà, je voudrais confectionner un programme qui viendrais renseigner ces valeurs automatiquement pour que ce ne sois pas à l'utilisateur de le faire

Bonjour,

@RobertFicot,

Cela demande trop d'effort de donner les données source du graphique ?

Cdlt.

Bonjour,

Non du tout, ces valeurs nécessaires à la création du graphique sont renseignées par l'utilisateur (cela ne changera pas étant donné que pour chaque utilisation elles changent), je ne sais pas si je m'exprime vraiment mal ou pas mais je veux juste automatiser le fait que lorsque le graphique se créé, les coefficients des deux courbes de tendance s'inscrivent directement dans les cases choisies afin de venir utiliser ces coefficients avec un autre programme. Évidemment, les coefficients des deux courbes de tendance changent à chaque utilisation, et c'est pour cela qu'à l'heure d'aujourd'hui, les utilisateurs de ce fichier doivent lire les coefficients sur le graphique et les rentrer manuellement.

Je vous mets les données ci-dessous.

12exemple.xlsx (15.15 Ko)

Merci d'avance, cdt.

bonjour,

une solution via une macro,

31robertficot.xlsm (22.57 Ko)
Sub aargh()
    Set gr = ActiveSheet.ChartObjects("Graphique 1").Chart
    eq1 = gr.FullSeriesCollection(3).Trendlines(1).DataLabel.Caption
    a = Left(eq1, InStr(eq1, "x") - 1)
    Range("B3") = Mid(a, 4)
    Range("B4") = Mid(eq1, InStr(eq1, "+") + 1)
    eq2 = gr.FullSeriesCollection(1).Trendlines(1).DataLabel.Caption
    b = Left(eq2, InStr(eq2, "e") - 1)
    Range("B5") = Mid(b, 4)
    d = Mid(eq2, InStr(eq2, "e") + 1)
    Range("B6") = Left(d, Len(d) - 1)
End Sub

tu peux également obtenir les valeurs a et b avec la fonction excel LINEST,SLOPE,INTERCEPT (DROITREG,PENTE,DONNEE.ORIGINE en français),

A: =INDEX(DROITEREG(x;y);1) ou =PENTE(x;y)

B: =INDEX(DROITEREG(x;y);1;2) ou =DONNEE.ORIGINE(x;y)

pour les parametres C et D,voici les formules à utiliser

C: =EXP(INDEX(DROITEREG(LN(y); x); 1; 2)) ou =EXP(DONNEE.ORIGINE(LN(y);x))

D: =INDEX(DROITEREG(LN(y); x); 1) ou =PENTE(LN(y);x)

Parfait cela fonctionne merci beaucoup @h2so4, je vous envoie un MP pour plus d'informations.

Cdt

bonjour

je vous envoie un MP pour plus d'informations.

Pourquoi par MP ?

Rechercher des sujets similaires à "recuperation coefficients deux courbes graphiques"