Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
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
Inhaltsverzeichnis

Farbwechsel bei Trendlinien

Farbwechsel bei Trendlinien
Klaus
Hallo Excel Freaks,
ich habe den Wunsch eine lineare Trendline in einer Grafik (Excel 2007) je nach Verlauf farblich unterschiedlich darzustellen ohne selbst Hand anzulegen.
z.B. Trend ansteigend - Trendlinenfarbe "Rot", Trend fallend - Trendlinenfarbe "Grün"
Hat von Euch dazu jemand eine Idee?
Danke schon mal im Voraus.
Gruß,
Klaus
AW: Farbwechsel bei Trendlinien
01.09.2010 10:18:59
Beverly
Hi Klaus,
welchen Trendlinientyp verwendest du?


AW: Farbwechsel bei Trendlinien
01.09.2010 10:21:54
Beverly
sorry, noch eine Frage: welcher Diagrammtyp?


AW: Farbwechsel bei Trendlinien
01.09.2010 10:39:17
Klaus
Hallo Berverly,
ich verwende ein Säulendiagramm mit linearer Trentlinie zu den dargestellten Werten.
Gruß,
Klaus
AW: Farbwechsel bei Trendlinien
01.09.2010 10:58:56
Beverly
Hi Klaus,
das lässt sich lösen, indem du die Trendlinie nicht von Excel einzeichnen lässt sondern sie berechnest und 2 Hilfsdatenreihen auf Basis dieser Berechnung verwendest, von denen je nach Anstiegswinkel (negativ oder positiv) entweder die eine oder die andere im Diagramm angezeigt wird.
https://www.herber.de/bbs/user/71340.xlsx
Im angehängten Beispiel habe ich die eigentliche Trendlinie belassen, sodass du die Richtigkeit der Darstellung überprüfen kannst.


Anzeige
AW: Farbwechsel bei Trendlinien
01.09.2010 12:02:49
Klaus
Hallo Berverly,
danke für deine Hilfe.
Ich werde die Lösungsvariante von Franz für mein Problem testen und schauen wie's funktioniert.
Gruß,
Klaus
AW: Farbwechsel bei Trendlinien
01.09.2010 10:46:42
fcs
Hallo Klaus,
per Ereignismakro kann man die Farbgebung steuern, dabei das Vorzeichen der Steigung in der Trenlinien gleichung ausgewertet.
Das nachfolgendem Beispiel bezieht auf die 1. Datenreihe des 1. eingebetteten Diagramms im Tabellenblatt, Diagrammtyp: XY-Punkt.
Das Makro muss du unter dem Tabellenblatt mit den Daten für das Diagramm einfügen.
Nummer der Datenreihe (ggf. Name in Anführungszeichen verwenden) und den Datenbereich muss du ggf. anpassen.
Gruß
Franz
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 

Anzeige
AW: Farbwechsel bei Trendlinien-Nachtrag
01.09.2010 11:03:02
fcs
Hallo Klaus,
meine Lösung funktioniert auch in anderen Diagrammtypen.
Die Zahlenwerte für für den Farbumschlag muss du tauchen um deine Trendanzeige zu realisieren.
Falls die Werte für das Diagramm per Formel berechnet werden, dann solltes du das Calculate-Ereignismakro statt des Change-Ereignismakros zur Aktualisierung des Diagrams verwenden.
Bei diesem Ereignis entfällt dann die Prüfung auf den Zellenbereich.
Gruß
Franz
AW: Farbwechsel bei Trendlinien-Nachtrag
01.09.2010 11:51:00
Klaus
Hallo Franz,
wie muss das Macro aussehen wenn zwei oder mehr Grafiken auf einem Excelsheet existieren?
Gruß,
Klaus
AW: Farbwechsel bei Trendlinien-Nachtrag
01.09.2010 23:07:22
fcs
Hallo Klaus,
ich hab jetzt auch unter Excel2007 die Funktion getestet. Scheinbar verhalten sich die Diagramme bezüglich Aktualisierung in den beiden Versionen leicht unterschiedlich. Ich musste eine zusätzliche Neuberechnung einbauen.
Im Code findest du auch Beispiele, wie du die Chartobjekte ansprechen kannst. bei mehreren Charts nimm am besten den Namen, denn die Nummerierung kann sich ändern, wenn Charts eingefügt oder gelöscht werden.
Mit dem zusätzlichen Makro kannst dir Infos zu den Chartobjekten anzeigen und auch den Namen der eingebetteten Diagramme anpassen.
Gruß
Franz
'Prozeduren unter dem Tabellenblatt-Modul des Blatts mit den Daten
'Bitte nur mit einer der beiden Varianten Arbeiten!!!
'fcs 2010-09-01
'Wenn Werte für Diagramm von Hand eingegeben oder in den Datenbereich kopiert werden
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  sNameAlt Then .Name = vName
End If
End With
Next
AktiveZelle.Select
Ende:
Set AktiveZelle = Nothing: Set objChartObject = Nothing
End Sub

Anzeige
AW: Farbwechsel bei Trendlinien-Nachtrag
02.09.2010 07:48:46
Klaus
Hallo Franz,
ich komme mit dem Macro nicht ganz klar.
Ich arbeite in meiner Datei mit zwei Excel-Sheets (Data und Grafik).
Somit gilt für mich die Macrozeile "Set oChart = Charts("Chart 1") ' für Diagramm auf separatem Blatt"
Nun bekomme ich , sobald eine Datenänderung im Sheet "Data" erfolgt immer folgende Fehlermeldung:
Laufzeitfehler 9, Index außerhalb des gültigen Bereiches.
Was mache ich für einen Fehler?
Gruß, Klaus
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
Anzeige
AW: Farbwechsel bei Trendlinien-Nachtrag
03.09.2010 13:27:37
Klaus
Hallo Franz,
ich habe nun soweit alles am Laufen, funktioniert hervorragend.
Vielen Dank für deine Hilfe.
Viele Grüße,
Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige