OVH Cloud OVH Cloud

constante dans les indices de la notation R1C1

5 réponses
Avatar
pmdubee
Bonjour,

je veux utiliser une macro pour faire une r=E9gression lin=E9aire:
(fonction droitereg en dehors des macros, LINEST dans vba).
j'ai fait =E7a:
ActiveCell.FormulaR1C1 =3D
"=3DLINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
Selection.FormulaArray =3D
"=3DLINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
pour i=3D17 et k=3D5, qui sont donc des constantes.
Mais =E7a renvoie une erreur d'ex=E9cution 1004: erreur d=E9fnie par
l'application ou l'objet.

Je pense que c'est =E0 cause des constantes, car si je remplace les i+5
et autres par leur vraie valeur pendant le d=E9bogage, =E7a ne pose plus
de probl=E8me.

Connaissez vous une solution?

Merci beaucoup d'avance

5 réponses

Avatar
isabelle
bonjour,

ActiveCell.FormulaR1C1 "=LINEST(R[1]C[" & i & "+5]:R[1+" & k & "]C[ & i & +5],R[1]C[2]:R[ & k & +1]C[2],TRUE)"

mais cela serait plus visible en utilisant .Formula avec des référence de type A1

isabelle


Bonjour,

je veux utiliser une macro pour faire une régression linéaire:
(fonction droitereg en dehors des macros, LINEST dans vba).
j'ai fait ça:
ActiveCell.FormulaR1C1 > "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
Selection.FormulaArray > "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
pour i et k=5, qui sont donc des constantes.
Mais ça renvoie une erreur d'exécution 1004: erreur défnie par
l'application ou l'objet.

Je pense que c'est à cause des constantes, car si je remplace les i+5
et autres par leur vraie valeur pendant le débogage, ça ne pose plus
de problème.

Connaissez vous une solution?

Merci beaucoup d'avance



Avatar
isabelle
correction (manque des "")

"=LINEST(R[1]C[" & i & "+5]:R[1+" & k & "]C[" & i & "+5],R[1]C[2]:R[" & k & "+1]C[2],TRUE)"

isabelle


bonjour,

ActiveCell.FormulaR1C1 > "=LINEST(R[1]C[" & i & "+5]:R[1+" & k & "]C[ & i & +5],R[1]C[2]:R[ & k
& +1]C[2],TRUE)"

mais cela serait plus visible en utilisant .Formula avec des référence
de type A1

isabelle


Bonjour,

je veux utiliser une macro pour faire une régression linéaire:
(fonction droitereg en dehors des macros, LINEST dans vba).
j'ai fait ça:
ActiveCell.FormulaR1C1 >> "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
Selection.FormulaArray >> "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
pour i et k=5, qui sont donc des constantes.
Mais ça renvoie une erreur d'exécution 1004: erreur défnie par
l'application ou l'objet.

Je pense que c'est à cause des constantes, car si je remplace les i+5
et autres par leur vraie valeur pendant le débogage, ça ne pose plus
de problème.

Connaissez vous une solution?

Merci beaucoup d'avance





Avatar
Pounet95
Bonjour,

Essaie d'écrire ton instruction en mettant tes variables en concaténation de
chaine :
PAr exemple
ActiveCell.FormulaR1C1 = "=LINEST(R[-" & k & "]C[-" & i & "]:R[-" & i &
"]C[-" & i & "],R[-" & k & "]C[-1]:R[-" & i & "]C[-1],TRUE)"

Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"pmdubee" a écrit dans le message de news:

Bonjour,

je veux utiliser une macro pour faire une régression linéaire:
(fonction droitereg en dehors des macros, LINEST dans vba).
j'ai fait ça:
ActiveCell.FormulaR1C1 "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
Selection.FormulaArray "=LINEST(R[1]C[i+5]:R[1+k]C[i+5],R[1]C[2]:R[k+1]C[2],TRUE)"
pour i et k=5, qui sont donc des constantes.
Mais ça renvoie une erreur d'exécution 1004: erreur défnie par
l'application ou l'objet.

Je pense que c'est à cause des constantes, car si je remplace les i+5
et autres par leur vraie valeur pendant le débogage, ça ne pose plus
de problème.

Connaissez vous une solution?

Merci beaucoup d'avance
Avatar
pmdubee
Merci à tous les deux. j'ai du faire une petite adaptation de vos
codes, car ça ne marche pas directement chez moi.
Je n'ai pas le droit de faire de calcul comme " & k & "+1 entre deux
crochets pour une coordonnée. Par contre, si je déclare une nouvelle
variable avant: z=k+1, en écrivant " & z & ", là, ça fonctionne.
Donc merci pour l'idée!
C'est vraiment pas bizarre ce logiciel. Ce qui m'énerve le plus, c'est
qu'il ne dit pas assez le type de l'erreur dans le débogueur...

A bientôt,
paul-marie
Avatar
pmdubee
Merci à tous les deux. j'ai du faire une petite adaptation de vos
codes, car ça ne marche pas directement chez moi.
Je n'ai pas le droit de faire de calcul comme " & k & "+1 entre deux
crochets pour une coordonnée. Par contre, si je déclare une nouvelle
variable avant: z=k+1, en écrivant " & z & ", là, ça fonctionne.
Donc merci pour l'idée!
C'est vraiment pas bizarre ce logiciel. Ce qui m'énerve le plus, c'est
qu'il ne dit pas assez le type de l'erreur dans le débogueur...

A bientôt,
paul-marie