Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Comment récupérer dans une cellule l'équation de la courbe de tendance d'un graphique ?

Louiso

XLDnaute Nouveau
Bonjour,
J'ai tracer beaucoup de graphiques en nuages de points avec une courbe de tendance dont l'équation est affichée, mais j'aimerais ensuite récupérer l'équation d'un graphique en particulier pour ensuite travailler dessus. Je pourrais simplement recopier l'équation mais je dois répéter l'opération plusieurs fois, ce qui me prendrait beaucoup de temps.
Est-ce possible de récupérer l'équation grâce à une macro ? Si oui , quel serait le codage possible ?
(je ne connais pas très bien le langage VBA, je débute seulement, mais j'aimerais comprendre un peu comment ça marche puisque j'utilise énormément Excel et je pense que cela pourrais me faire gagner beaucoup de temps)

Merci
 

vgendron

XLDnaute Barbatruc
bonjour

puisque tu traces des graphiques.. les données sont donc sur ta feuille Excel
tu peux donc aussi mettre une formule pour retrouver la formule..
de mémoire = pente(donnéeX;donnéexY)
.ordonnée.origine(....)
 

Louiso

XLDnaute Nouveau

Merci, je n'avais pas pensé à faire aussi simple
Cependant je filtre certaines valeurs de la liste pour tracer un graphique correct mais la fonction Droitereg prend en compte toutes les valeurs de la liste ce qui ne me permet pas de retrouver les mêmes coefficients que ceux du graphique
 

vgendron

XLDnaute Barbatruc
tiens. une petite analogie (j'aime bien ca)

bonjour Docteur
bonjour, qu'est ce qui vous amène
je viens vous voir parce que depuis ce matin, j'ai très mal au doigt
ok, voyons, ah oui, il est tout gonflé et rouge, on dirait une allergie.. on va faire des recherches...
au fait. ce matin en sortant des toilettes, je me suis coincé le doigt dans la porte...
 

sylvanu

XLDnaute Barbatruc
Supporter XLD


Le plus simple restera l'approche VBA avec :
Code:
Sub ExtraitEquation()
Set Feuille = ActiveWorkbook.Worksheets(1)
With Feuille.ChartObjects(1).Chart
    With .SeriesCollection(1).Trendlines(1)
        Equation = .DataLabel.Text
    End With
End With
T = Split(Split(Equation, "= ")(1), "x")
[B25] = Equation: [B27] = Val(T(0)): [B28] = Val(T(1))
End Sub
Voir PJ.
Même avec des "trous" la courbe de tendance est correcte.
 

Pièces jointes

  • Louiso (2).xlsm
    18 KB · Affichages: 6

Louiso

XLDnaute Nouveau
et allez !!
encore un post à rallonge avec les infos données au compte goutte !
Merci de rester agréable, je ne pense pas que ce commentaire était nécessaire
Comme indiqué précédemment je ne suis pas une experte en excel, c'est pour cela que je demande de l'aide.
Je ne pensais pas que cette info serait nécessaire puisque je voulais simplement récupérer les coefficients que le graphique me donnait.

Pour rebondir sur l'analogie qui vous plait tant :
C'est comme si j'allais chez le docteur
-Bonjour docteur, j'ai mal au doigt, pourriez vous me prescrire du paracétamol
-Hmm non je vais plutôt vous prescrire de la crème apaisante cela vous suffira
-Oulala je ne savais pas que ça existait, merci beaucoup docteur
Finalement votre crème ne fonctionne pas du tout et je crois même que j'en suis allergique
-Enfin madame, il fallait me dire que vous étiez allergique à cette crème !

Vous comprendrez à travers cette analogie que mon manque d'expertise ne me permettait pas de savoir à l'avance quelles informations donner au docteur.
Par ailleurs, si cela vous dérange de m'aider ne le faite pas. Ne perdez pas votre temps et faites gagner le miens.

Merci de votre compréhension
 

vincent32

XLDnaute Nouveau
Bonjour sylvanu
Tu n'aurai pas un tuto qui détaille ta macro par hasard ?

Merci d'avance pour ta réponse
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re bonjour tout le monde,
Un essai en PJ avec une courbe de tendance polynomiale d'ordre 5, et cette macro :
VB:
Sub ExtraitEquation()
' Marche pour une courbe de tendance par polynome ordre 5
Set Feuille = ActiveWorkbook.Worksheets(1)
With Feuille.ChartObjects(1).Chart              ' Avec le graphique de la feuille
    With .SeriesCollection(1).Trendlines(1)     ' On extrait l'équation donnée
        Equation = .DataLabel.Text              ' L'éqauation doit être affichée sur le graphique
    End With
End With
T = Split(Equation, "= ")                       ' On vire le "=" de l'équation
[B25] = Equation                                ' On colle le texte de l'équation
T = Split(T(1), "x5"): [B27] = Val(T(0))        ' On extrait a5 et on le colle
T = Split(T(1), "x4"): [B28] = Val(T(0))        ' On extrait a4 et on le colle
T = Split(T(1), "x3"): [B29] = Val(T(0))        ' On extrait a3 et on le colle
T = Split(T(1), "x2"): [B30] = Val(T(0))        ' On extrait a2 et on le colle
T = Split(T(1), "x"): [B31] = Val(T(0))         ' On extrait a1 et on le colle
[B32] = Val(T(1))                               ' On colle a0
End Sub
Si la courbe de tendance choisie n'est pas celle ci, le début de la macro reste le même. Il suffit à la fin de retraiter correctement les coefficient en fonction de la formule choisie.
 

Pièces jointes

  • Louiso (2).xlsm
    19.1 KB · Affichages: 4

vincent32

XLDnaute Nouveau
Super merci beaucoup
Bonne continuation
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…