Récupérer une équation d'un graphique

Signaler
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009
-
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009
-
Bonjour, je souhaiterai récupérer un paramètre de l'équation d'un graphique de la forme y=Ax^(n).
J'ai réussi à récupérer la constante A mais n'arrive pas à récupérer la puissance n!!! Voici mon code:

ActiveSheet.ChartObjects("Graphique 12").Activate
   
    equa = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Caption
 
    Range("F28") = Int(Val(Mid$(equa, 4, InStr(1, equa, "x")))) (code pour la constante)
    Range("F29") = Int(Val(Mid$(equa, "x", InStr(1, equa, ))))   (code pour la puissance... qui ne marche pas!)

Si quelqu'un a une idée??

Merci beaucoup

6 réponses

Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour

La fonction suivante

Int(Evaluate(Mid(equa, InStr(1, equa, "^") + 1)))

te renvoie n ; grâce à la fonction Evaluate, n peut être exprimé sous diverses formes telles que :
4
3+1
2^2
3*5-11, etc

Comme n est précédé de l'opérateur ^, il faut mettre l'expression entre parenthèses dès lors qu'elle contient elle-même un opérateur arithmétique.

Amicalement
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009

Salut, merci pour ta réponse! En fait j'ai mis "^" pour montrer que cété une puissance! l'equation s'écrit: y = 549120572,93x<sup>-2,79

Je veux récupérer le -2.79 après le x alors en suivant ta formule j'ai écri:

     Range("F29") = Int(Evaluate(Mid(equa, InStr(1, equa, "x") + 1)))

Mais ça buggg!!! Ai-je mal compris ce que tu m'as dit???

cordialement
</sup>
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009

Re, j'ai fait un mix avec ton code et cela semble convenir!! Seul bémol, je récupere des valeure entiere mais j'aimerais bien avoir la valeur exact!! Il faut remplacer le Int à mon avis qui veut dire entier il me semble mais j'ai essayer et le code bug!! Une idée??

    Range("F28") = Int(Val(Mid$(equa, 4, InStr(1, equa, "x"))))
    Range("F29") = Int(Val(Mid$(equa, InStr(1, equa, "x") + 1)))

Cordialement
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Je ne vois pas de raison pour que ça fonctionne avec Int et que ça ne fonctionne plus quand tu l'enlèves. Quelle message d'erreur as-tu ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
la faute au Val ...
a pas confondre Val et CDbl
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009

Voila ce que j'ai mis et cela marche nikel!!

Range("H" & LigneActive).Value = Val(Mid$(equa, "4", InStr(1, equa, "x")))
Range("I" & LigneActive).Value = Val(Mid$(equa, InStr(1, equa, "x") + 1))

Merci orohena et renfield