Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte einer Trendlinie per VBA

Werte einer Trendlinie per VBA
09.06.2006 11:28:27
Wetzelsberger
Hallo Leute,
ich habe in einem Excel Diagramm eine polynomische Trendline 3. Grades (z.B: y=x^3+2x^2-0,5x). Nun möchte ich über ein Makro die Werte die vor dem X stehen auslesen, bekomme es aber nicht hin. Am Schluss brauche ich jeden Wert in einer Variablen gespeichert (also 3 Werte).
Bisher habe ich es nur geschafft, die komplette Gleichung in einer Zelle anzeigen zu lassen (siehe Text):

Sub TrendAuslesenundBerechnen()
Dim T As Object
ActiveSheet.ChartObjects("Diagramm 1").Activate
Set T = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel
T.NumberFormat = "00000000.0000"
ActiveSheet.Cells(50, 1) = T.Characters.Text
End Sub

Ich hoffe das war verständlich. Danke schonmal,
Stephan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte einer Trendlinie per VBA
09.06.2006 12:06:40
Wetzelsberger
Hmm, leider sind meine vba Kenntnisse eher rudimentär und ich verstehe da einiges nicht.
Meine Gleichung bezieht sich ja nur auf 3 Koeffizienten und nicht auf 6.
Kann mir das jemand irgenwie vereinfacht darstellen?
Wäre echt super,
Danke
Anzeige
AW: Werte einer Trendlinie per VBA
09.06.2006 13:35:48
Erich
Hallo Stephan,
versuchst du's mal damit?
(Bei 3. Grades kommen 4 max. Koeffizienten raus, von xHoch3 bix xHoch0.)
Sub TrendAuslesenundBerechnen()
Dim T As Object, ii As Integer, arrK
ActiveSheet.ChartObjects("Diagramm 1").Activate
Set T = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel
'   T.NumberFormat = "00000000.0000"
arrB = Koeff(T.Characters.Text, 3)
For ii = 0 To 3
ActiveSheet.Cells(50, ii + 1) = arrB(ii)
Next ii
End Sub
Function Koeff(strT As String, Grad As Byte)
Dim strZ As String, arrA, arrB() As Double
ReDim arrB(Grad)
strZ = Replace(Replace(strT, "+ ", "+"), "- ", "-")
If Left(strZ, 1) = "y" Then strZ = Trim(Right(strZ, Len(strZ) - 1))
If Left(strZ, 1) = "=" Then strZ = Trim(Right(strZ, Len(strZ) - 1))
arrA = Split(strZ, " ")
For ii = 0 To UBound(arrA)
Select Case InStr(arrA(ii), "x")
Case 0:              arrB(0) = arrA(ii)
Case Len(arrA(ii)):  arrB(1) = Left(arrA(ii), Len(arrA(ii)) - 1)
Case Else:           arrB(Right(arrA(ii), 1)) = Left(arrA(ii), Len(arrA(ii)) - 2)
End Select
Next ii
Koeff = arrB
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige