Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot Chart Spalteneinträgen feste Farbe zuweisen

Pivot Chart Spalteneinträgen feste Farbe zuweisen
24.07.2014 10:36:46
Johann
Hallo zusammen,
ich habe das bekannte Problem, dass sich die Formatierung meines PivotCharts ändert, wenn die Daten aktualisiert werden.
Viele meiner Charts haben immer die gleichen Spalteneinträge: Es geht dabei stets um Technologien, die zur Stromerzeugung eingesetzt werden.
Z.B. Werte zu PV sollen immer orange sein, Wind immer blau, Steinkohle immer schwarz, usw.
Ich habe versucht ein Makro aufzuzeichen, das mir die nötigen Einstellungen vornimmt. Klappt leider nicht einmel in dem einen Reiter.
Habt ihr einen Codeschnipsel für mich, den ich dann beliebig um weitere Technologien erweitern kann?
Die Daten hole ich mir nicht direkt aus einer Pivot-Tabelle, sondern aus einem PowerPivot Datenmodell, dass auf Tabellen in Access zugreift. Wenn das ein Problem für das Makro darstellen sollte, könnte ich auch den Umweg gehen, und mir zunächst eine Pivot-Tabelle erzeugen und erst im nächsten Schritt ein Chart.

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ist ein "Folgethread" ....
24.07.2014 10:50:43
der
Hallo,
... die Fragestellung bezieht sich ganz offensichtlich auf folgenden Thread: https://www.herber.de/forum/messages/1371655.html
@ Johann,
... meine vorangestellte Anmerkung hätte auch gleich von Dir kommen können/sollen. Du brauchst jetzt hierauf nicht antworten (es sei denn Du hast selbst eine Lösung gefunden), ich stell den Thread auf offen.
Gruß Werner
.. , - ...

Anzeige
AW: ist ein "Folgethread" ....
24.07.2014 11:32:56
Johann
Hallo Werner,
der Thread hier hat meiner Meinung nach mit dem anderen nichts zu tun. Das Problem, das du verlinkt hast, habe ich mit deiner Hilfe gelöst.
Mein Problem hier ist eher allgemeiner Natur...
Viele Grüße
Johann

AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen
24.07.2014 10:56:45
Beverly
Hi Johan,
laufe in einer Schleife über alle Datenreihen und prüfe den Reihennamen - dann kannst du in Abhängigkeit davon die Datenreihe farblich formatieren.


Anzeige
AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen
24.07.2014 11:35:56
Johann
Hallo Karin,
ich habe hier mal folgenden Code ausprobiert, der mir immer den ersten Legendeneintrag einfärbt.
Sub Farbe_zuweisen()
Dim wksTab As Worksheet
Dim chrDia As ChartObject
Dim strExport As String
Dim SavePath As String
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
chrDia.Chart.FullSeriesCollection(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Next chrDia
End If
End With
Next wksTab
End Sub
Das problem dabei ist, dass sich die Reihenfolge der Legendeneinträge ändern kann.
Kannst du mir einen Tipp geben, wie ich über die Datenreihe loope und die Reihennamen prüfe?
Viele Grüße
Johann

Anzeige
AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen
24.07.2014 15:36:45
Johann
Hallo Karin,
ich habe mir noch folgenden Code aus anderen Beiträge zusammengeschustert.
Kannst du mir sagen, wo der Fehler ist?
Sub Farbe_zuweisen()
Dim peType As String
Dim datnum As Integer
Dim wksTab As Worksheet
Dim chrDia As ChartObject
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
For datnum = 1 To chrDia.SeriesCollection.Count
With Selection.Format.Fill
Select Case peType
Case "Braunkohle"
.Visible = msoTrue
.BackColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
Case Else
.Visible = msoTrue
.ForeColor.RGB = RGB(50, 0, 0)
.Transparency = 0
.Solid
End Select
End With
Next datnum
Next chrDia
End If
End With
Next wksTab
End Sub
PS: Von VBA hab ich echt keine Ahnung

Anzeige
AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen
24.07.2014 16:43:21
Johann
Hallo nochmal,
also ich habe es inzwischen geschafft mit einem weiteren Codeschnipsel von dir aus einem anderen Forum, dass die Farbänderung für das aktuelle Sheet klappt.
Sub Farbe_zuweisen()
Dim num    As Integer
Dim wksTab As Worksheet
Dim chrDia As ChartObject
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
With ActiveSheet.ChartObjects(1).Chart
For num = 1 To .SeriesCollection.Count
With .SeriesCollection(num)
Select Case .Name
Case "Braunkohle"
.Interior.ColorIndex = 21
Case "Steinkohle"
.Interior.ColorIndex = 3
Case "Erdgas"
.Interior.ColorIndex = 4
End Select
End With
Next num
End With
Next chrDia
End If
End With
Next wksTab
End Sub
Was muss ich ändern, damit der Loop über alle Sheets klappt?
Vielen Dank im Voraus.
Gruß Johann

Anzeige
Farben im Diagramm über alle Sheets ändern
24.07.2014 16:48:20
Johann
OK - Habs raus!
Sub Farbe_zuweisen()
Dim num    As Integer
Dim wksTab As Worksheet
Dim chrDia As ChartObject
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
With .ChartObjects(1).Chart
For num = 1 To .SeriesCollection.Count
With .SeriesCollection(num)
Select Case .Name
Case "Braunkohle"
.Interior.ColorIndex = 21
Case "Steinkohle"
.Interior.ColorIndex = 3
Case "Erdgas"
.Interior.ColorIndex = 4
End Select
End With
Next num
End With
Next chrDia
End If
End With
Next wksTab
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Feste Farben in Pivot Charts Zuweisen


Schritt-für-Schritt-Anleitung

Um den Spalteneinträgen in einem Pivot Chart feste Farben zuzuweisen, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft die Datenreihen und weist basierend auf dem Namen der Reihe die entsprechenden Farben zu:

Sub Farbe_zuweisen()
    Dim num As Integer
    Dim wksTab As Worksheet
    Dim chrDia As ChartObject
    For Each wksTab In Worksheets
        With wksTab
            If .ChartObjects.Count > 0 Then
                For Each chrDia In .ChartObjects
                    With chrDia.Chart
                        For num = 1 To .SeriesCollection.Count
                            With .SeriesCollection(num)
                                Select Case .Name
                                    Case "Braunkohle"
                                        .Interior.ColorIndex = 21
                                    Case "Steinkohle"
                                        .Interior.ColorIndex = 3
                                    Case "Erdgas"
                                        .Interior.ColorIndex = 4
                                    ' Füge hier weitere Technologien hinzu
                                End Select
                            End With
                        Next num
                    End With
                Next chrDia
            End If
        End With
    Next wksTab
End Sub

Um den Code auszuführen, öffne den VBA-Editor mit ALT + F11, füge ein neues Modul hinzu und kopiere den Code dort hinein. Führe das Makro aus, um die Farben in deinem Excel-Diagramm zu fixieren.


Häufige Fehler und Lösungen

  1. Das Diagramm aktualisiert die Farben nicht
    Stelle sicher, dass du das Makro nach jeder Aktualisierung der Daten ausführen. Das Makro muss manuell gestartet werden, um die Formatierung beizubehalten.

  2. Falsche Farbzuteilung
    Überprüfe die Namen der Datenreihen. Der Code verwendet die Namen, um die Farben zuzuweisen. Wenn die Namen nicht übereinstimmen, wird die Farbe nicht korrekt angewendet.

  3. Diagramm funktioniert nicht mit PowerPivot
    Wenn du Daten aus PowerPivot verwendest, stelle sicher, dass die Daten auch in einer regulären Pivot-Tabelle zur Verfügung stehen, da der Code auf diese zugreift.


Alternative Methoden

Eine andere Möglichkeit, um die Farben in einem Excel-Diagramm zu fixieren, ist die Verwendung von Bedingter Formatierung. So kannst du Farben abhängig von den Werten oder Bedingungen ändern, allerdings ist dies nicht so flexibel wie der oben genannte VBA-Ansatz.


Praktische Beispiele

  1. Einfärbung nach Technologie
    Verwende den bereitgestellten VBA-Code, um Technologien wie "PV" (Photovoltaik) in orange und "Wind" in blau darzustellen.

  2. Excel-Kreisdiagramm Farben zuweisen
    Möchtest du ein Excel-Kreisdiagramm erstellen? Verwende einen ähnlichen Ansatz, indem du die SeriesCollection des Kreisdiagramms anpasst, um den Segmenten feste Farben zuzuweisen.


Tipps für Profis

  • Pivot Chart Formatierung beibehalten: Nutze den Code regelmäßig, um sicherzustellen, dass deine Pivot Chart Formatierung bei Aktualisierungen beibehalten wird.
  • Makros automatisieren: Du kannst das Makro auch so einrichten, dass es bei jedem Öffnen der Arbeitsmappe automatisch ausgeführt wird, um die Formatierung stets aktuell zu halten.
  • Farbcodes verwenden: Anstelle von ColorIndex kannst du RGB-Farbwerte nutzen, um eine präzisere Farbauswahl zu treffen.

FAQ: Häufige Fragen

1. Wie kann ich die Farben für zusätzliche Technologien hinzufügen?
Ergänze einfach weitere Case-Anweisungen im Select Case-Block des Codes.

2. Funktioniert dieser Code in Excel 2016?
Ja, der VBA-Code sollte in Excel 2016 und neueren Versionen problemlos funktionieren, solange du die Makros aktiviert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige