ich habe aus einer Tabelle mehrere Diagramme erstellt die jeweils eine Spalte darstellen. Messwert 1 über Artikelnummer und Messwert 2 über Artikelnummer usw. Jetzt ist ein Datenpunkt im Messwert 1 Diagramm auffällig. Um zu erkennen ob dieser Datenpunkt (Artikelnummer) auch in den anderen Messwerten auffällig ist möchte ich diesen Datenpunkt (Artikelnummer) gerne in allen Diagrammen hervorheben ohne ihn in jedem Diagramm zu suchen und manuell hervorzuheben. Ein Filtern der Tabelle ist auch keine Lösung, da mir sonst überall der Vergleich zu den anderen Datenpunkten fehlt und ich nur den Auffälligen sehe.
Optimal wäre eine Lösung bei der ich in der Tabelle aus der die Daten stammen festlege: Bitte diese Reihe (Artikelnummer) in allen Diagrammen hervorheben.
A) zusätzliche Datenreihen Du kannst 1. die Struktur deiner Tabelle kopieren, 2. über Formeln die Werte nur übernehmen wenn die Artikelnummer der Auswahl entspricht und 3. in jedes Diagramm eine zweite Datenreihe einfügen.
B) VBA Abhängig von den Diagrammtypen kann man (eventuell über eine Parametertabelle) die Formatierung für die Auswahl ändern und bei einer Abwahl wieder zurücksetzen.
A) ist ein wenig manueller Aufwand und für B) benötigt man schon einige VBA-Kenntnisse. Weitergehende Hilfe nur wenn du eine Beispieldatei zur Verfügung stellst.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
habe das mal mit den extra Datenreihen probiert. Leider gibt es dann Probleme mit der Horizontalen-Achse, dass die hervorzuhebenden Datenpunkte nicht mehr an der richtigen Stelle sind. Aus Artikelnummer habe ich jetzt irgendein Datum (z.b. Verkaufsdatum) gemacht. Hab mal eine Beispieldatei angehängt.
Wenn du da eine gute Lösung hättest wäre das toll.
aus dem Archiv kommt dieser Code, der ausgewählte Punkte im Chart markiert. Die Anpassung solltest Du hin bekommen.
Code:
Sub BedingtFormatieren() Dim lngPunkt As Long Dim pktPunkt As Point Dim strBereich As String With ActiveSheet.ChartObjects(1).Chart.SeriesCollection("Dauer") strBereich = Split(.Formula, ",")(1) For lngPunkt = 1 To .Points.Count If Range(strBereich).Cells(lngPunkt).Offset(0, 1).DisplayFormat.Interior.ColorIndex _ <> xlNone Then Set pktPunkt = .Points(lngPunkt) pktPunkt.Interior.Color = _ Range(strBereich).Cells(lngPunkt).Offset(0, 1).DisplayFormat.Interior.Color End If Next lngPunkt End With End Sub
In Spalte A stehen Labels, z.B. A,B, C usw, in Spalte B stehen Werte, einige größer 10, andere kleiner 10.
Dieser Code färbt die Marker nach den Gruppen getrennt ein:
Code:
Sub Punkte_faerben()
Dim Cht As Chart Dim Col As Long
Set Cht = ActiveSheet.ChartObjects(1).Chart
With Cht.FullSeriesCollection(1)
For i = 1 To .Points.Count
With .Points(i) .ApplyDataLabels If Val(.DataLabel.Text) > 10 Then Col = RGB(255, 0, 0) Else Col = RGB(0, 255, 0) End If .ApplyDataLabels (xlDataLabelsShowNone)
.MarkerStyle = xlMarkerStyleSquare .MarkerForegroundColor = Col .MarkerBackgroundColor = Col .MarkerSize = 5
End With Next i End With
Set Cht = Nothing End Sub
In deinem Beispiel sind die Chart etwas "ungewöhnlich": 2x die selbe Spalte, die Datums-Werte nicht als Datum. Die Meßwerte 3 sind identisch zu den Meßwerten 2, aber um 2 Zeilen verschoben.
mfg
(den Wert der Punkte konnte ich nicht eleganter auslesen, vielleicht kennt jemand einen Weg)