XL 2019 Utiliser l'équation d'une Trendline pour calculer l'ordonnée de plusieurs points

HugoReyes48

XLDnaute Nouveau
Bonjour à tous,

Je cherche depuis quelques temps un programme VBA pour utiliser l'équation de ma trendline, que j'ai fait apparaître sur mon graph. Je voudrais extraire la formule, calculer y pour x = 0, x = 2,5 et x=17,5 ; puis faire apparaître les valeurs calculées sur la sheet.

J'ai lu beaucoup d'articles sur le forum autour de ce sujet mais aucune des techniques présentées ne semblent fonctionner.

Mon code permet pour l'instant d'obtenir le graphique et d'afficher la trendline et son équation (DisplayEquation = True).
Ensuite, je ne sais pas comment m'y prendre avec le DataLabel.Text ; si je dois le copier et utiliser Replace ; si je dois utiliser Split...

Merci d'avance

Cordialement
 
Solution
Bonsoir Hugo, et bienvenu sur XLD,
Un petit fichier test eût été le bienvenu, ne serait ce que pour comprendre le besoin.
Si le but est d'obtenir une droite de régression alors le plus simple est d'utiliser Droitereg :
VB:
Coef a : =DROITEREG(B2:B12;A2:A12)
Coef b : =INDEX(DROITEREG(B2:B12;A2:A12);2)
Voir PJ.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Hugo, et bienvenu sur XLD,
Un petit fichier test eût été le bienvenu, ne serait ce que pour comprendre le besoin.
Si le but est d'obtenir une droite de régression alors le plus simple est d'utiliser Droitereg :
VB:
Coef a : =DROITEREG(B2:B12;A2:A12)
Coef b : =INDEX(DROITEREG(B2:B12;A2:A12);2)
Voir PJ.
 

Pièces jointes

  • Classeur1.xlsx
    11.7 KB · Affichages: 1

HugoReyes48

XLDnaute Nouveau
Bonjour,

Merci beaucoup pour votre réponse !!

En effet la fonction DroiteReg (ou Linest en anglais) m'a bien aidé, je l'ai intégré à mon code VBA et j'ai pu récupérer le coefficient directeur et l'ordonnée à l'origine pour calculer y pour certaines valeurs.


Merci !
 

Pièces jointes

  • Book1.xlsm
    19.7 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Hugo,
Vous pourriez rendre votre macro indépendante de la taille de votre tableau en la laissant la calculer :
VB:
...
End With

DL = Range("A65500").End(xlUp).Row
Set MatX = Range("A2:A" & DL)
Set MatY = Range("B2:B" & DL)
[F2] = WorksheetFunction.LinEst(MatY, MatX)
[F2].Offset([0], [1]) = WorksheetFunction.Index(WorksheetFunction.LinEst(MatY, MatX), 2)

Dim a
...
et de supprimer aussi les Select.