|  
                                             Hallo.  
ich habe ein Pivotdiagramm erstellt. Nun möchte ich nach der tollen Anleitung von Excel – Diagrammfarben per VBA zuweisen (von Andreas Thehos)  vordefinierte (Hintergrund-)Farben in der Eingabemaske für das PivotDiagramm zu nutzen.  
Andreas schreibt in seine Eingabemaske die RGB Werte alle einzeln und händisch in drei aufeinanderfolgende Spalten und liest diese dann als Wert aus. Das finde ich für den Nutzer recht umständlich, da dieser ja nicht alle Farbcodes im Kopf hat. So möchte ich die vorgegebene (Hintergrund)Farbe als RGB direkt auslesen, über: 
.Format.Fill.ForeColor.RGB = RGB(R, G, B) 
Das Ganze habe ich von dieser dieser (Return background color of selected cell) aus einer public function abkopiert. Leider meckert der bei folgender Zeile mit einem Syntaxfehler: 
.Format.Fill.ForeColor.RGB = RGB(Cells(j, 4).(ColorValue Mod 256) & ", " & Cells(j, 4).((ColorValue \ 256) Mod 256) & ", " & Cells(j, 4).(ColorValue \ 65536)) 
Die Farben sollen direkt aus der jeweiligen Zelle genommen werden. Kann mir jmd. sagen, warum er mir diesen Fehler ausspuckt? 
  
Hier der komplette Code:  
Sub Farben_Diagramm()
Dim chtDiagramm As Chart
Dim i As Integer, j As Integer, intColor As Integer, intSeries As Integer, Color As Integer
Dim strName As String, strChart As String, strBlatt As String
Dim rng As Range
    strBlatt = "Analyse"
    strChart = "Personalkapazitaet"
    Set chtDiagramm = Sheets(strBlatt).ChartObjects(strChart).Chart
    intSeries = chtDiagramm.SeriesCollection.Count
    For i = 1 To intSeries
        strName = chtDiagramm.SeriesCollection(i).Name
        For j = 2 To Range("RangePhase").Value + 1
            If Sheets("Pers_Input").Cells(j, 1).Value = strName Then
                'Textfarbe bestimmen: 'intColor = Sheets(„Pers_Input“).Cells(j, 14).Value
                With chtDiagramm.SeriesCollection(strName)
                    .Format.Fill.Visible = msoTrue
                    .Format.Fill.ForeColor.RGB = RGB(Cells(j, 4).(ColorValue Mod 256) & ", " & Cells(j, 4).((ColorValue \ 256) Mod 256) & ", " & Cells(j, 4).(ColorValue \ 65536))
                    '.Format.Fill.ForeColor.RGB = RGB(Sheets("Pers_Input").Cells(j, 11).Value, _
                        Sheets("Pers_Input").Cells(j, 12).Value, Sheets("Pers_Input").Cells(j, 13).Value)
                       
                End With
               
            End If
        Next j
    Next i
End Sub
Ich nutze Excel2019.  
Vielen Dank für eure Hilfe.  
VG Sascha 
  
     |