AW: Farbwechsel bei Trendlinien-Nachtrag
02.09.2010 22:15:52
fcs
Hallo Klaus,
Diagramme könne einen unter VBA manchmal schon in den Wahnsinn treiben.
Der Index-Fehler deutet auf eine falsche Schreibweise des Namens des Diagramms hin. Er muss genau so geschrieben werden wie auf den Tabregistern im Excelprgrammfenster. Oder du arbeitets mit der Zählnummer der Diagramme, die Links mit dem 1. Diaramm bei 1 beginnt.
Beim Probieren unter Excel 2007 zum Suchen/Beheben deines Problems ist mir dann aufgefallen, dass der Farbumschlag nur funktioniert, wenn das Diagrammblatt aktiv ist - Exceldiagramme oh grausame VBA-Welt.
also müsste das Makro unter dem Blatt "Data" etwa so aussehen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oChart As Chart, oReihe As Series, oTrend As Trendline
Dim sText As String
If Target.Column >= 1 And Target.Column = 1 And Target.Row
Da ist es dann ggf. einfacher auf das Worksheet_Change-Ereignismakro zu verzichten und unter dem Chart/Diagramm-Modul das Chart_Activate-Ereignismakro mit entsprechenden Anweisungen auszustatten.
Private Sub Chart_Activate()
Dim oReihe As Series, oTrend As Trendline
Dim sText As String
Set oReihe = Me.SeriesCollection(1)
Set oTrend = oReihe.Trendlines(1)
oTrend.DisplayEquation = True 'weglassen wenn Gleichung schon angezeigt wird
Application.EnableEvents = False
Application.Calculate
Application.EnableEvents = True
sText = oTrend.DataLabel.Text 'Text der Trendliniengleichung merken.
oTrend.DisplayEquation = False 'weglassen wenn Gleichung angezeigt bleiben soll
'Vorzeichen in Gleichung nach dem Gleichheitszeichen prüfen
If Mid(sText, InStr(1, sText, "="), 3) = "= -" Then
oTrend.Border.Color = 65280 'grün
Else
oTrend.Border.Color = 255 'rot
End If
End Sub
Ich hoffe, dass das jetzt so langsam rund läuft.
Gruß
Franz