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

DROITEREG en VBA (sans passer par Excel)

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
 

JNP

XLDnaute Barbatruc
Re : DROITEREG en VBA (sans passer par Excel)

Bonsoir Willce et bienvenue ,
Quelque chose comme
Code:
b = Application.WorksheetFunction.LinEst(x, y, True)
ne te convient pas ?
Bonne soirée
 

job75

XLDnaute Barbatruc
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:

JNP

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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:

willce

XLDnaute Nouveau
[RESOLU] DROITEREG en VBA (sans passer par Excel)


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

Willce
 

Discussions similaires

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