Fonction "Linest" = casse-tête

Utilisateur anonyme - 12 juil. 2006 à 09:32
 Utilisateur anonyme - 12 juil. 2006 à 11:59
Salut,

Je galère trop avec l'utilisation de la fonction Linest sous VB...

Pour ceux qui ne connaissent pas, cette fonction calcule les coefficients d'une droite de regression linéaire, à partir d'une série de points.

Les quelques exemples d'utilisation sont rares sur le net, et surtout sont en VBA dans des macros.

Voici l'appel de cette fonction :

resu = Excel.WorksheetFunction.LinEst(tab_X, tab_Y, True , False)

les param sont :
-un tableau de coordonnées X des point à "régresser"
-un tableau de coordonnées Y des point à "régresser"
-determiner la constante de régression
-obtenir les statistiques complémentaires

jai déclaré resu et les 2 tableaux en variant. les 2 tableaux sont redimensionnés en 1 dimension chaqu'un.
resu est prêt à recevoir n'importe quel type de données, donc.

Le problème doit venir des parametres, car le msg d'erreur est le suivant:
"Impossible de lire la propriété Linest de la classe WorksheetFunction."

De plus,ma version de VB est en anglais, si ca peut vous donner un indice...

J'ai également vu des exemples ou tab_X etait un tableau à 2 dimension, avec les val de X et X^2, bizarre...

2 réponses

Utilisateur anonyme
12 juil. 2006 à 10:35
Ne pensez vous pas que ca peut venir d'un probleme (manque) de réference?
Je pense que la référence à cocher est Microsoft Excel 9.0, mais je n'en suis pas sur.

Je me demande également comment peut on déterminer le nombre de coéfficients de corrélation? CAD le degré maximum des X. Il me faudrait minimum une equation du sixieme degré, mais il faut déjà que j'arrive à faire fonctionner correctement cette function.

Pourriez - vous tester l'appel de cette fonction chez vous, juste pour voir quesque ca donne...SVP.

Autre indice, en macro VBA, cette fonction est dans la catégorie "FormulaArray", dont voici son code :

lib_f1 = "=LINEST(b2:b" & nb & ",a2:a" & nb & "^{1,2,3,4,5,6})"
Obj_Excel.ActiveWorkbook.Sheets(2).Range("I2:P2").Select
Obj_Excel.Application.Selection.FormulaArray = lib_f1

Mais piloter l'objet Excel ainsi, implique de valoriser les cellules d'une feuille de calc, ce qui est extremement long etant donné le nombre de points que j'ai à regresser (~3000)!

Cest donc pour ca que je voudrai utiliser cette fonction sans passer par excel, mais juste utiliser son API (dite le moi si jme trompe).
0
Utilisateur anonyme
12 juil. 2006 à 11:59
bon, l'origine du msg d'erreur est dût à une mauvaise entrée des param, j'en suis sure maintenant,
autre rectification ; le tablo des Y est à mettre en premier param, et les X ensuite.
0
Rejoignez-nous