Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot Chart Spalteneinträgen feste Farbe zuweisen

Betrifft: Pivot Chart Spalteneinträgen feste Farbe zuweisen von: Johann
Geschrieben am: 24.07.2014 10:36:46

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.

  

Betrifft: ist ein "Folgethread" .... von: der neopa
Geschrieben am: 24.07.2014 10:50:43

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
.. , - ...



  

Betrifft: AW: ist ein "Folgethread" .... von: Johann
Geschrieben am: 24.07.2014 11:32:56

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


  

Betrifft: AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen von: Beverly
Geschrieben am: 24.07.2014 10:56:45

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.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen von: Johann
Geschrieben am: 24.07.2014 11:35:56

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


  

Betrifft: AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen von: Johann
Geschrieben am: 24.07.2014 15:36:45

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


  

Betrifft: AW: Pivot Chart Spalteneinträgen feste Farbe zuweisen von: Johann
Geschrieben am: 24.07.2014 16:43:21

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


  

Betrifft: Farben im Diagramm über alle Sheets ändern von: Johann
Geschrieben am: 24.07.2014 16:48:20

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



 

Beiträge aus den Excel-Beispielen zum Thema "Pivot Chart Spalteneinträgen feste Farbe zuweisen"