Dynamische Trendlinienformel aus Diagramm auslesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Label MsgBox
Bild

Betrifft: Dynamische Trendlinienformel aus Diagramm auslesen
von: Falk
Geschrieben am: 31.07.2015 09:20:30

Guten Morgen,
ich versuche momentan ein Makro zu erstellen, dass mir zu einem Diagramm, welches aus einer Messreihe erzeugt wird die Trendlinienformel ausließt, die Variablen ersetzt und das Ergebnis ausgibt. Da ich keine Idee hatte, wie ich das realisieren kann habe ich mal die Makroaufzeichnen Funktion genutzt. Das sieht zwar nicht schön aus, funktioniert aber mit dem kopieren. Nun tritt aber das Problem auf, dass egal welche Formel kopiert wird bei der Berechnung des Ergebnisses aber immer das Ergebnis der ursprünglich aufgezeichneten Funktion berechnet wird. Weiß jemand dazu eine Lösung? Im Anhang ein Listing des Codes.

Vielen Dank im Voraus.
Range("L10").Select
Sheets("Trennung Reib-und Eisenverlust").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Select
Range("V10").Select
Selection.Copy
ActiveSheet.Paste
Application.CutCopyMode = False
Range("V11").Select
ActiveCell.FormulaR1C1 = _
"=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(R[-9]C[-19],""x"",""*$A2^""),""^ "",),""y "",)"
Sheets("Protokoll").Select
ActiveCell.FormulaR1C1 = _
"=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE('Trennung Reib-und Eisenverlust'!RC[10],""x"",""*0^""),""^ "",),""y "",)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "= 0.0026*0+ 196.29"

Bild

Betrifft: => Recherche 'Trendlinie' ! (owT)
von: EtoPHG
Geschrieben am: 31.07.2015 09:44:44


Bild

Betrifft: => Recherche : 'Trendlinie' (owT)
von: EtoPHG
Geschrieben am: 31.07.2015 09:45:46


Bild

Betrifft: AW: => Recherche : 'Trendlinie' (owT)
von: Falk
Geschrieben am: 31.07.2015 12:27:53
Danke für die Hilfe, konnte somit zwei meiner drei Probleme lösen. Wie kann ich denn die Trendlinienfunktionen für Polynome n-ten Grades nutzen?

Bild

Betrifft: AW: Dynamische Trendlinienformel aus Diagramm auslesen
von: Beverly
Geschrieben am: 31.07.2015 12:57:35
Hi,
wenn ich dein Anliegen richtig verstanden habe, dann vielleicht so:

Sub TrendlinienBerechnung()
    Dim strInhalt As String
    Dim XLTrTyp As XlTrendlineType
    Dim intZaehler As Integer
    With Worksheets("Trennung Reib-und Eisenverlust")
        With .ChartObjects(1).Chart
            XLTrTyp = .SeriesCollection(1).Trendlines(1).Type
            If .SeriesCollection(1).Trendlines(1).Type <> xlMovingAvg Then
                .SeriesCollection(1).Trendlines(1).DisplayEquation = True
                strInhalt = Worksheets("Tabelle1").ChartObjects(1).Chart.SeriesCollection(1). _
Trendlines(1).DataLabel.Caption
                .SeriesCollection(1).Trendlines(1).DisplayEquation = False
            End If
        End With
        If strInhalt <> "" Then
            Select Case XLTrTyp
                Case xlLinear   ' Linear
                    strInhalt = Application.Substitute(strInhalt, "x", "*A2")
                Case xlPolynomial
                    For intZaehler = Len(strInhalt) - Len(Application.Substitute(strInhalt, "x", _
 "")) To 2 Step -1
                        strInhalt = Application.Substitute(strInhalt, "x" & intZaehler, "*A2^" & _
 intZaehler)
                    Next intZaehler
                    strInhalt = Application.Substitute(strInhalt, "x", "*A2")
                Case xlLogarithmic  ' Logarithmisch
                    strInhalt = Application.Substitute(Application.Substitute(strInhalt, "x", " _
A2"), "ln", "*LOG")
                Case xlPower    ' Potenz
                    strInhalt = Application.Substitute(strInhalt, "x", "*A2^")
                Case xlExponential  ' Exponential
                    strInhalt = Application.Substitute(Application.Substitute(strInhalt, "x", "* _
A2"), "e", "*2,71828182845904^")
                Case xlMovingAvg    ' Gleitender Durchschnitt
                    MsgBox "Für diesen Trendlinientyp exisitiert keine Formel"
            End Select
            .Range("V11").FormulaLocal = Application.Substitute(Application.Substitute( _
strInhalt, "y", ""), " ", "")
        End If
    End With
End Sub



Bild

Betrifft: AW: Dynamische Trendlinienformel aus Diagramm auslesen
von: Falk
Geschrieben am: 03.08.2015 13:03:54
Danke, kommt ganz gut hin.
Rein Interesse halber. Ich glaube mein Problem liegt hier.

ActiveCell.FormulaR1C1 = "= 0.0026*0+ 196.29"
Habe jetzt Versucht, die kopierte Formel in einem String abzulegen und die erforderlichen Substitutionen vorzunehmen. Leider kommt immer noch kein Ergebnis zu Stande. Bekomme jetzt ein Fehler bei o.g. Zeile.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dynamische Trendlinienformel aus Diagramm auslesen"