Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte einer Trendlinie per VBA

Forumthread: 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
Anzeige

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
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
;
Anzeige

Infobox / Tutorial

Werte einer Trendlinie per VBA auslesen


Schritt-für-Schritt-Anleitung

Um die Werte einer Trendlinie in Excel per VBA auszulesen, folge diesen Schritten:

  1. Öffne dein Excel-Dokument und erstelle ein Diagramm mit einer polynomischen Trendlinie. Achte darauf, dass es sich um eine 3. Grades Trendlinie handelt.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub TrendAuslesenundBerechnen()
       Dim T As Object, ii As Integer, arrK
       ActiveSheet.ChartObjects("Diagramm 1").Activate
       Set T = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel
       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
  5. Führe das Makro aus:

    • Drücke F5 in der VBA-Oberfläche oder gehe zurück zu Excel und führe das Makro über Entwicklertools > Makros aus.

Die Werte der Trendlinie werden nun in den Zellen A50 bis D50 angezeigt.


Häufige Fehler und Lösungen

  • Fehler: "Diagramm 1 nicht gefunden"

    • Lösung: Stelle sicher, dass dein Diagramm den Namen "Diagramm 1" trägt. Du kannst den Namen im Diagrammformatierungsbereich überprüfen und bei Bedarf anpassen.
  • Fehler: Kein Ergebnis in den Zellen

    • Lösung: Überprüfe, ob die Trendlinie korrekt in deinem Diagramm hinzugefügt wurde und ob die Datenlabels aktiv sind.

Alternative Methoden

Falls VBA nicht die ideale Lösung für dich ist, kannst du auch die Excel Trendlinie manuell verwenden, um die Koeffizienten anzuzeigen:

  1. Klicke mit der rechten Maustaste auf die Trendlinie im Diagramm.
  2. Wähle „Trendlinienoptionen“ und aktiviere die Option „Gleichung im Diagramm anzeigen“.
  3. Die Gleichung wird direkt im Diagramm angezeigt und kann manuell abgelesen werden.

Praktische Beispiele

Angenommen, du hast die Gleichung einer Ausgleichsgerade in Excel, die die Form y = 2x^3 + 3x^2 - 0.5x hat. Mit dem oben genannten VBA-Skript kannst du die Koeffizienten 2, 3 und -0.5 aus der Gleichung extrahieren und in die Zellen eintragen.

Das Ergebnis wäre dann wie folgt:

  • A50: 2
  • B50: 3
  • C50: -0.5
  • D50: 0 (für den konstanten Term)

Tipps für Profis

  • Nutze die ausgleichskurve in Excel, um komplexe Datenmuster zu analysieren. Die richtige Interpretation der Trendlinienwerte kann dir helfen, tiefere Einblicke in deine Daten zu gewinnen.
  • Experimentiere mit verschiedenen Trendlinientypen und wähle den für deine Daten am besten geeigneten aus.

FAQ: Häufige Fragen

1. Wie viele Koeffizienten kann ich mit einer polynomischen Trendlinie auslesen? Normalerweise kannst du bis zu 4 Koeffizienten aus einer polynomischen Trendlinie 3. Grades auslesen.

2. Welche Excel-Version benötige ich für die VBA-Methoden? Die VBA-Methoden sind in den gängigen Versionen von Excel verfügbar, einschließlich Excel 2010 und später. Stelle sicher, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige