Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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

Bedingte Formatierung Diagramm

Bedingte Formatierung Diagramm
29.03.2017 08:09:22
Christian
Moin,
weiss jemand von euch vielleicht ob es in einen gestapelten Balkendiagramm (Mein Beispiel im Anhang), bestimmte Bereiche anders farbig zu markieren. In meiner Tabelle habe ich 6 Zeilen in der Spalte Version über eine bedingte Formatierung anders farbig gestaltet und diese Formatierung würde ich auch gerne im Diagramm wiedererkennen.
Wie könnte das klappen?
https://www.herber.de/bbs/user/112491.xlsx
Viele Grüße
Christian

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung Diagramm
29.03.2017 09:00:58
Beverly
Hi Christian,
dazu kannst du folgendes Makro verwenden:
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


Anzeige
AW: Bedingte Formatierung Diagramm
29.03.2017 09:11:23
Christian
Hey Karin,
Wahnsinn vielen lieben Dank, der Code funktioniert einwandfrei. Habe auch gerade die anderen Zellen farbig markiert und er übernimmt auch da die Formatierung in das Diagramm.
Viele Grüße
Christian
AW: Bedingte Formatierung Diagramm
29.03.2017 10:26:03
Christian
Hallo Karin,
darf ich noch eine Nachfrage stelle?
Ich habe aus der Tabelle eine formatierte gestaltet, die um eine Spalte und einige Werte erweitert. Leider sehe ich im Makro nicht, wie ich den Bereich verändern kann, da es jetzt nicht mehr funktioniert.
Zur zweiten Frage, die Tabelle beinhaltet sehr viele Werte, welche nicht alle im Diagramm angezeigt werden. Ist es möglich das Diagramm an den gefilterten Werten anzupassen? Ein großer Teil der Daten wird nicht angezeigt bzw. es passt sich den gefilterten Werten nicht an.
https://www.herber.de/bbs/user/112499.xlsm
Vielen Dank für eure/ deine Unterstützung.
Viele Grüße
Christian
Anzeige
AW: Bedingte Formatierung Diagramm
29.03.2017 10:35:20
Christian
Moin, die frage nach den Code hat sich erübrigt :)
Weiterhin bleibt die Frage, wie sich die Zeitachse, an die Filterwerte orientieren kann?
Vielen Dank.
AW: Bedingte Formatierung Diagramm
29.03.2017 11:00:26
Beverly
Hi Christian,
ich habe den Code jetzt so umgeschrieben, dass in der Kopfzeile der Tabelle nach "Version" gesucht wird und diese Spalte dann für den Vergleich bezüglich der bedingten Formatierung herangezogen wird:
Sub BedingtFormatieren()
Dim lngPunkt As Long
Dim pktPunkt As Point
Dim rngSpalte As Range
With tblBalken
With .ListObjects(1)
Set rngSpalte = .HeaderRowRange.Find("Version", lookat:=xlWhole)
If Not rngSpalte Is Nothing Then
With .Parent.ChartObjects(1).Chart.SeriesCollection("Dauer")
For lngPunkt = 1 To .Points.Count
If tblBalken.ListObjects(1).DataBodyRange.Columns(rngSpalte.Column). _
Cells(lngPunkt).DisplayFormat.Interior.ColorIndex  xlNone Then
Set pktPunkt = .Points(lngPunkt)
pktPunkt.Interior.Color = _
tblBalken.ListObjects(1).DataBodyRange.Columns(rngSpalte.Column) _
.Cells(lngPunkt).DisplayFormat.Interior.Color
End If
Next lngPunkt
End With
End If
End With
End With
End Sub

Deine zweite Frage ist mir unklar.
1. was meinst du mit "Ein großer Teil der Daten wird nicht angezeigt"? Wenn ich raten sollte würde ich meinen, dass du das Minimum der Horizontalachse auf das Minimum deiner Datumswerte setzen musst.
2. die Aussage "bzw. es passt sich den gefilterten Werten nicht an" dagegen kann ich überhaupt nicht interpretieren


Anzeige
AW: Bedingte Formatierung Diagramm
29.03.2017 11:11:44
Christian
Vielen Dank Karin, der Code wurde gleich eingebaut.
Zum zweiten Punkt. Es sollen Werte in der Tabelle gefiltert werden, das Diagramm soll sich dann den neuen Bereich anpassen und die X-Achse dementsprechend verändern. Wenn ich jetzt einfach nur den Bereich oben manuell anpasse, habe ich ja immer die Maximalen Bereich und wenn neue Werte hinzukommen, sind diese auch wieder abgeschnitten.
Hier nochmal die Datei
https://www.herber.de/bbs/user/112501.xlsm
Vielen Dank für deine Unterstützung
Viele Grüße
Christian
Anzeige
Automatische Achsenskalierung
29.03.2017 12:10:56
Beverly
Hi Christian,
das Filtern einer Tabelle löst kein Ereignis aus welches man für die automatische Anpassung verwenden könnte. Da bleibt nur folgende Lösung: schreibe in eine Zelle (z.B. Q1) die Formel =TEILERGEBNIS(105;Tabelle1[CF-Start]) - sie wird immer neu berechnet sobald im Tabellenblatt etwas berechnet wird, also auch beim Filtern der Datumsspalte. Mit folgendem Code im Codemodul des Tabellenblattes wird das Minimum der Horizontalachse im Diagramm an diesen Minimumwert angepasst:
Private Sub Worksheet_Calculate()
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale = Range("Q1")
End Sub


Anzeige
AW: Automatische Achsenskalierung
29.03.2017 12:31:59
Christian
Wie sieht es den mit der Funktion Bereich.Verschieben und Namensmanager aus? Sind die beiden Werkzeuge nicht für dynamische Diagramme geeignet?
Viele Grüße
Christian
AW: Automatische Achsenskalierung
29.03.2017 14:16:16
Beverly
Hi Christian,
hast du den Code mal getestet?
Gewiss sind BEREICH.VERSCHIEBEN bzw. besser INDEX/VERGLEICH für eine dynamische Gestaltung von definierten Namen geeignet, aber was würdest du in deinem Fall damit erreichen wollen?


AW: Automatische Achsenskalierung
29.03.2017 18:25:46
Christian
Hallo Karin,
der Code klappt super für den Minimalen Bereich, für die maximale Begrenzung habe ich den Code noch um eine Zeile erweitert und die Tabelle um eine zusätzliche Spalte. In der lasse ich jetzt den Maximum wert berechnen und dann passt sich die X-Achse den Werten an. Um den Abstand zu den Seiten zu gewährleisten rechne ich dann noch einen Offset von 15 drauf
Mein Ziel was ich gerade verfolge ist es, für jede MSN also für jede Version UAE01 zusätzliche Informationen in einen zweiten Diagramm anzeigen zu lassen in diesen Fall flächenwerte die dazu kommen. Es gibt fünf Zeitpunkte zu denen Werte hinzukommen.
1. In dem Balkendiagramm wo du mir geholfen hast, wollte ich übersichtlich die Versionen darstellen, wann welche kommen.
2. In einen zweiten Diagramm darunter, woran ich gerade dran arbeite, möchte ich einzelne Maschinen mit den fünf Zeitpunkten darstellen. Vielleicht alle Versionen für das nächste halbe Jahr, detailiert mit den fünf Zeitpunkten. Und dann unter den Diagramm die summierten Werte zu den jeweiligen Zeitpunkten der Versionen für das halbe Jahr. Das sind so meine Überlegungen
Und da hast du mir schon sehr geholfen Heute mit dem Code, das war echt super. Jetzt kann ich die einzelnen Versionen über bedingte formatierung direkt im Diagramm anzeigen lassen und jeder sieht sofort welche Varianten werden da auf uns zu kommen. Aber zu jeder Version gibt es noch details und die würde ich auch gerne darstellen. Daher die Überlegungen mit den filtern und dynamischen diagrammen wo ich mich noch einarbeiten muss.
Viele Grüße
Christian
Anzeige
AW: Automatische Achsenskalierung
29.03.2017 20:57:25
Beverly
Hi Christian,
das WIE und OB hängt ganz von den konkreten Bedingungen ab, was denn in den Diagrammen dargestellt werden soll und was du wie "filtern" willst.
Verschiedene Beispiellösungen zu Diagrammen mit dynamisch definierten Namen findest du auf meiner HP, Seite Diagramme


AW: Automatische Achsenskalierung
30.03.2017 20:26:53
Christian
Hey Karin,
vielen Dank für den Link und ein großes Kompliment für deine Homepage. Die Beispiele werde ich mir in den nächsten Tagen mal anschauen aber die sehen auf den ersten Blick sehr hilfreich aus :)
Viele Grüße
Christian
Anzeige
Einfach über weitere Null-Reihen
29.03.2017 09:03:48
lupo1
Du teilst die Reihe, um die es geht, in zwei (benachbarte!) auf.
Die alte Reihe behält ihre Werte und wird dort Null, wo die Bedingungen greifen. Die neue Reihe ist zunächst Null und bekommt die bedingten Werte der alten Reihe entsprechend.
So, wie bedF mit Formeln funktioniert, geht das hier auch.
AW: VBA
29.03.2017 09:38:47
Fennek
Hallo,
hier ein VBA-Code:

Sub Fen()
Fa = Array(14136213, 5066944, 16777215) 'Blau, rost-rot, Weis
ActiveSheet.ChartObjects("Diagramm 1").Activate
With ActiveChart.FullSeriesCollection(2)
.Select
For i = 5 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, "B").DisplayFormat.Interior.Color = Fa(0) Then
.Points(i - 4).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorText2
Else
.Points(i - 4).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
End If
Next i
End With
End Sub
Es ist eine eher ungewöhnliche Frage, also etwas zum Lernen, aber auch nur "nice to have".
mfg
Anzeige
AW: zu langsam (owt)
29.03.2017 09:41:40
Fennek

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige