DROITEREG en VBA (sans passer par Excel)

  • Initiateur de la discussion Initiateur de la discussion willce
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

willce

XLDnaute Nouveau
Bonjour,

Voilà ma problématique: je possède un nuage de points et cherche à déterminer la droite de régression linéaire correspondante.

Les valeurs de ces points sont déterminées via un code VBA et n'apparaissent pas dans un tableau Excel (et je ne tiens pas à les faire apparaitre dans Excel: il s'agit de données temporaires)

Or:
1. je n'ai, au final, besoin de récupérer que la pente (a) et l'ordonnée à l'origine (b) de la droite de regression et
2. comme je l'ai précisé, je ne veux pas passer par l'intermédiaire d'une feuille EXCEL

Idéalement: il me faudrait une fonction VBA (mais pas LINEST qui nécessite "d'écrire" dans Excel) qui me génére les 2 coefficients au sein de ma procédure VBA.

Euh...j'ai été clair ?! 😕
Merci pour vos suggestions
 
Re : DROITEREG en VBA (sans passer par Excel)

Bonjour willce, JNP,

Un exemple au plus simple :

Code:
Sub Regression()
Dim X(3), Y(3), a As Double, b As Double
X(0) = 0: Y(0) = 1
X(1) = 1: Y(1) = 3
X(2) = 2: Y(2) = 5
X(3) = 3: Y(3) = 7
a = Application.Index(Application.LinEst(Y, X), 1)
b = Application.Index(Application.LinEst(Y, X), 2)
MsgBox "Pente a = " & a & Chr(10) & "Ordonnée à l'origine b = " & b
End Sub

Edit : pas besoin de la fonction Index :

Code:
Sub Regression()
Dim X(3), Y(3), a As Double, b As Double
X(0) = 0: Y(0) = 1
X(1) = 1: Y(1) = 3
X(2) = 2: Y(2) = 5
X(3) = 3: Y(3) = 7
a = Application.LinEst(Y, X)[COLOR="Red"](1)[/COLOR]
b = Application.LinEst(Y, X)[COLOR="red"](2)[/COLOR]
MsgBox "Pente a = " & a & Chr(10) & "Ordonnée à l'origine b = " & b
End Sub

A+
 
Dernière édition:
Re : DROITEREG en VBA (sans passer par Excel)

Re 🙂,
Job : J'allais te poser la question si tu utilisais Index pour ne pas tenir compte de Option Base 0 ou 1 😛... L'hypothèse est intérressante, non 😀 ?
Bonne soirée 😎
 
Re : DROITEREG en VBA (sans passer par Excel)

Re Jean-Noël,

J'utilisais Index parce que je l'utilise dans une feuille de calcul.

Mais j'ai corrigé car elle est inutile en VBA sur une matrice.

Intéressant de noter aussi que Application.LinEst(Y, X)(0) n'existe pas...

A+
 
Dernière édition:
[RESOLU] DROITEREG en VBA (sans passer par Excel)

Bonjour willce, JNP,

Un exemple au plus simple :

Code:
Sub Regression()
Dim X(3), Y(3), a As Double, b As Double
X(0) = 0: Y(0) = 1
X(1) = 1: Y(1) = 3
X(2) = 2: Y(2) = 5
X(3) = 3: Y(3) = 7
a = Application.Index(Application.LinEst(Y, X), 1)
b = Application.Index(Application.LinEst(Y, X), 2)
MsgBox "Pente a = " & a & Chr(10) & "Ordonnée à l'origine b = " & b
End Sub

Edit : pas besoin de la fonction Index :

Code:
Sub Regression()
Dim X(3), Y(3), a As Double, b As Double
X(0) = 0: Y(0) = 1
X(1) = 1: Y(1) = 3
X(2) = 2: Y(2) = 5
X(3) = 3: Y(3) = 7
a = Application.LinEst(Y, X)[COLOR="Red"](1)[/COLOR]
b = Application.LinEst(Y, X)[COLOR="red"](2)[/COLOR]
MsgBox "Pente a = " & a & Chr(10) & "Ordonnée à l'origine b = " & b
End Sub

A+

Terrible JOB 75, c'est exactement ce que je veux ! 🙂🙂
Merci également JPN qui a tracé la voie !!

Willce
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour