Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : reference L1C1 dans une FormulaArray

4 réponses
Avatar
andré
Bonjour

J'essaye depuis trois jours de programmer le calcul des 2=20
param=E8tres d'une droite de r=E9gression (formule matricielle=20
Droitereg) et d'afficher ces deux param dans deux cases=20
Excel s=E9lectionn=E9es

si je connais les colonnes cela donne une formule du=20
type :=20
Selection.FormulaArray =3D "=3DLINEST(R[-1]C[5]:R[7]C[5],R[-1]C
[6]:R[7]C[6])" et cela marche

PETIT PROBLEME : les chiffres (-1), (5), (7), etc... ne=20
sont pas connus =E0 l'avance. Ce sont des valeurs calcul=E9es=20
un peu plus haut dans la sub.=20

quel est alors le bon argument =E0 passer =E0 la fonction=20
LINEST ??

merci d'avance
Andr=E9

4 réponses

Avatar
papou
Bonjour
Il te faut "construire" ta formule en concaténant les éléments qui sont
variables.
Cordialement
Pascal

"andré" a écrit dans le message de
news:a11f01c47944$44883250$
Bonjour

J'essaye depuis trois jours de programmer le calcul des 2
paramètres d'une droite de régression (formule matricielle
Droitereg) et d'afficher ces deux param dans deux cases
Excel sélectionnées

si je connais les colonnes cela donne une formule du
type :
Selection.FormulaArray = "=LINEST(R[-1]C[5]:R[7]C[5],R[-1]C
[6]:R[7]C[6])" et cela marche

PETIT PROBLEME : les chiffres (-1), (5), (7), etc... ne
sont pas connus à l'avance. Ce sont des valeurs calculées
un peu plus haut dans la sub.

quel est alors le bon argument à passer à la fonction
LINEST ??

merci d'avance
André
Avatar
andré
Merci, mais malheureusement cela ne marche pas

voici ce que je fais :
- je définis 2 Strings :
ligneTexte1 = "R[" & Format(decalLig1) & "]C[" & Format
(decalCol1) & "]:R[" & Format(decalLig2) & "]C[" & Format
(decalCol1) & "]"
- et ligneTexte2 est du meme accabit

ligneTexte1 prend bien une valeur du genre "R[1]C[2]..."

puis je calcule :
Selection.FormulaArray = "=LINEST(lignetexte1,
lignetexte2)"

et voici le résultat dans les deux cases cibles de Excel :
=DROITEREG(lignetexte1; lignetexte2) (littéralement !!)

peut être ne faut il pas entre des Strings comme argument ?

merci d'avance
André

-----Message d'origine-----
Bonjour
Il te faut "construire" ta formule en concaténant les
éléments qui sont

variables.
Cordialement
Pascal

"andré" a écrit dans
le message de

news:a11f01c47944$44883250$
Bonjour

J'essaye depuis trois jours de programmer le calcul des 2
paramètres d'une droite de régression (formule matricielle
Droitereg) et d'afficher ces deux param dans deux cases
Excel sélectionnées

si je connais les colonnes cela donne une formule du
type :
Selection.FormulaArray = "=LINEST(R[-1]C[5]:R[7]C[5],R[-1]
C

[6]:R[7]C[6])" et cela marche

PETIT PROBLEME : les chiffres (-1), (5), (7), etc... ne
sont pas connus à l'avance. Ce sont des valeurs calculées
un peu plus haut dans la sub.

quel est alors le bon argument à passer à la fonction
LINEST ??

merci d'avance
André


.



Avatar
papou
ben à vue de nez :
1 - La fonction Format semble inutile dans ton code
2 - Utilise une 3ème variable pour concaténer l'ensemble des éléments
formant la formule et utilise cette variable :
LaFormule = "=LINEST(" & lignetexte1 & "," & lignetexte2 & ")"
Selection.FormulaArray = LaFormule

Cordialement
Pascal

"andré" a écrit dans le message de
news:a2ee01c47949$4ad6a150$
Merci, mais malheureusement cela ne marche pas

voici ce que je fais :
- je définis 2 Strings :
ligneTexte1 = "R[" & Format(decalLig1) & "]C[" & Format
(decalCol1) & "]:R[" & Format(decalLig2) & "]C[" & Format
(decalCol1) & "]"
- et ligneTexte2 est du meme accabit

ligneTexte1 prend bien une valeur du genre "R[1]C[2]..."

puis je calcule :
Selection.FormulaArray = "=LINEST(lignetexte1,
lignetexte2)"

et voici le résultat dans les deux cases cibles de Excel :
=DROITEREG(lignetexte1; lignetexte2) (littéralement !!)

peut être ne faut il pas entre des Strings comme argument ?

merci d'avance
André

-----Message d'origine-----
Bonjour
Il te faut "construire" ta formule en concaténant les
éléments qui sont

variables.
Cordialement
Pascal

"andré" a écrit dans
le message de

news:a11f01c47944$44883250$
Bonjour

J'essaye depuis trois jours de programmer le calcul des 2
paramètres d'une droite de régression (formule matricielle
Droitereg) et d'afficher ces deux param dans deux cases
Excel sélectionnées

si je connais les colonnes cela donne une formule du
type :
Selection.FormulaArray = "=LINEST(R[-1]C[5]:R[7]C[5],R[-1]
C

[6]:R[7]C[6])" et cela marche

PETIT PROBLEME : les chiffres (-1), (5), (7), etc... ne
sont pas connus à l'avance. Ce sont des valeurs calculées
un peu plus haut dans la sub.

quel est alors le bon argument à passer à la fonction
LINEST ??

merci d'avance
André


.



Avatar
andré
formidable, ça marche!!

je n'arrive pas encore à comprendre la philosophie de la
concaténation :
la formule " & lignetexte1 & " m'est obscure mais je
finirai bien par piger

merci encore
André


-----Message d'origine-----
ben à vue de nez :
1 - La fonction Format semble inutile dans ton code
2 - Utilise une 3ème variable pour concaténer l'ensemble
des éléments

formant la formule et utilise cette variable :
LaFormule = "=LINEST(" & lignetexte1 & "," & lignetexte2
& ")"

Selection.FormulaArray = LaFormule

Cordialement
Pascal