VBA - Virgule manquante dans m et b l'équation de droite
Chips
-
Pierre1310 Messages postés 8854 Statut Membre -
Pierre1310 Messages postés 8854 Statut Membre -
Bonjour,
J'ai un petit soucis concernant des équations de courbes de tendance, à partir d'un graphique qui a deux courbes de tendances linéaires, j'essaye de récupérer les m et b (y=mx+b) des deux équations pour les mettre dans des cases.
Le code que j'ai fonctionne très bien pour les afficher dans la MsgBox, mais une fois dans les cases les virgules disparaissent pour la moitié des valeurs ce qui m'embête quelque peu... Je cherche donc quelqu'un qui saurait comment les faire réapparaitre
Voici le code en question :
Merci de l'aide que vous pourrez m'apporter.
Bonne journée
Chips
J'ai un petit soucis concernant des équations de courbes de tendance, à partir d'un graphique qui a deux courbes de tendances linéaires, j'essaye de récupérer les m et b (y=mx+b) des deux équations pour les mettre dans des cases.
Le code que j'ai fonctionne très bien pour les afficher dans la MsgBox, mais une fois dans les cases les virgules disparaissent pour la moitié des valeurs ce qui m'embête quelque peu... Je cherche donc quelqu'un qui saurait comment les faire réapparaitre
Voici le code en question :
Sub Recup_eq_droite()
Dim Equation
With Feuil1.ChartObjects(1).Chart.SeriesCollection(1).Trendlines(1) '1ere eq
.DisplayRSquared = False
.DisplayEquation = True
Equation = Split(.DataLabel.Text)
End With
Range("E20").Value = Left(Equation(2), Len(Equation(2)) - 1)
Range("G20").Value = Equation(3) & Equation(4)
MsgBox "Pente = " & Left(Equation(2), Len(Equation(2)) - 1) _
& vbCrLf & vbCrLf & "Ordonnée à l'origine = " & Equation(3) & Equation(4)
With Feuil1.ChartObjects(1).Chart.SeriesCollection(2).Trendlines(1) '2e eq
.DisplayRSquared = False
.DisplayEquation = True
Equation = Split(.DataLabel.Text)
End With
Range("E21").Value = Left(Equation(2), Len(Equation(2)) - 1)
Range("G21").Value = Equation(3) & Equation(4)
End Sub
Merci de l'aide que vous pourrez m'apporter.
Bonne journée
Chips
A voir également:
- VBA - Virgule manquante dans m et b l'équation de droite
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
- Barre droite mac ✓ - Forum MacOS
- Incompatibilité de type vba ✓ - Forum Programmation
- Voyant c et b imprimante canon ✓ - Forum Imprimante
- Editeur d'équation - Télécharger - Vie quotidienne
4 réponses
Bonjour Pierre, et merci de ta réponse
J'ai essayé mais ça ne fonctionne pas, le soucis c'est que plutôt que de récupérer 48.777 par exemple je me retrouve avec 48777, si je change le format il m'affiche 48777.000 et il est pris en compte comme ça dans les calculs suivant ce qui change considérablement mes résultats
J'ai essayé mais ça ne fonctionne pas, le soucis c'est que plutôt que de récupérer 48.777 par exemple je me retrouve avec 48777, si je change le format il m'affiche 48777.000 et il est pris en compte comme ça dans les calculs suivant ce qui change considérablement mes résultats
Bonjour,
pourquoi t'embêter à récupérer l'équation sur le graphique ?
Tu as DROITEREG() pour ça.
Application.LinEst() en VBA mais si le but est de mettre m et b dans une cellule pas besoin de vba.
ou bien PENTE() et ORDONNEE.ORIGINE() si tu préfères à une matrice (m,b).
Et si le but est d'interpoler tu as Tendance() ou Application.Trend() pour l'avoir directement.
eric
edit: remplacé COEFFICIENT.CORRELATION par ORDONNEE.ORIGINE
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
pourquoi t'embêter à récupérer l'équation sur le graphique ?
Tu as DROITEREG() pour ça.
Application.LinEst() en VBA mais si le but est de mettre m et b dans une cellule pas besoin de vba.
ou bien PENTE() et ORDONNEE.ORIGINE() si tu préfères à une matrice (m,b).
Et si le but est d'interpoler tu as Tendance() ou Application.Trend() pour l'avoir directement.
eric
edit: remplacé COEFFICIENT.CORRELATION par ORDONNEE.ORIGINE
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Ben il faut utiliser ton tableau de points qui t'ont servi à tracer ta courbe.
Regarde l'aide excel sur ces fonctions, elle est très bien faite.
Et quand tu mets :
C'est une chaine, pas un numérique. Qui en plus ne prend pas en compte ton séparateur décimal selon le cas.
Essaie avec :
Sinon sans fichier...
Regarde l'aide excel sur ces fonctions, elle est très bien faite.
Et quand tu mets :
Range("E21").Value = Left(Equation(2), Len(Equation(2)) - 1)
C'est une chaine, pas un numérique. Qui en plus ne prend pas en compte ton séparateur décimal selon le cas.
Essaie avec :
CDbl(Range("E21").Value = Left(Equation(2), Len(Equation(2)) - 1))
Sinon sans fichier...
Bonjour à tous
Pour récupérer l'équation de la droite de régression (données source en A2:B12) via vba en A15:B15, tu peux faire plus simple
Cdlmn
Pour récupérer l'équation de la droite de régression (données source en A2:B12) via vba en A15:B15, tu peux faire plus simple
Dim f As String, plage As String, m As Double, b As Double
plage = "B2:B12,A2:A12"
f = "=LINEST(" & plage & ")"
' met pente et ordonnée à l'origine en A15 et B15
Range("A15:B15").FormulaArray = f
' récupère la pente et l'ordonnée à l'origine (pas utile bien sûr
m = Range("A15").Value
b = Range("B15").Value
Cdlmn
Pourquoi faire simple quand on peut faire compliqué ? ;-)
Déjà rejeté : https://forums.commentcamarche.net/forum/affich-33405133-vba-virgule-manquante-dans-m-et-b-l-equation-de-droite#9
Déjà rejeté : https://forums.commentcamarche.net/forum/affich-33405133-vba-virgule-manquante-dans-m-et-b-l-equation-de-droite#9