AW: Diagramm Balkenfarben fest einstellen
02.05.2010 12:32:41
fcs
Hallo Kurt,
Makro-Lösung schaut etwa wie folgt aus. Die RGB-Werte und die Reihenfolge der Farben muss du halt noch anpassen. Makros kannst du in ein allgemeines Modul deiner Persönlichen Makroarbeitsmappe kopieren.
Alternativ funktioniert es evtl. auch mit einem Musterdiagramm,das auf Basis eines existierenden Diagramms mit den gewünschten Einstellungen erstellt wird. Dieses Muster dann als Basis für neue Diagramme verwenden. Dies hat ggf. den Vorteil, dass auch ein paar andere Wusnch-Einstellungen vorgenommen werden können.
Gruß
Franz
'Erstellt unter Excel 2007 Home Edition, Windows Vista
Sub Saeulenfarbe_Diagramm_im_Tabellenblatt()
'Diagramm als Objekt in Tabellenblatt, das letzte hinzugefügte Diagramm _
wird formatiert
With ActiveSheet
If .ChartObjects.Count > 0 Then
Call Diagramm_Format(objChart:=.ChartObjects(.ChartObjects.Count).Chart)
End If
End With
End Sub
Sub Saeulenfarbe_Diagramm_separat()
'Diagramm auf separatem Blatt
Call Diagramm_Format(objChart:=ActiveSheet)
End Sub
Sub Diagramm_Format(objChart As Chart)
Dim Reihe As Series
Dim K As Long, arrRGB(1 To 13, 1 To 3) As Long
'Farben-Daten für Diagrammdatenreihen.
K = 1: arrRGB(K, 1) = 255: arrRGB(K, 2) = 0: arrRGB(K, 3) = 0 'rot
K = 2: arrRGB(K, 1) = 0: arrRGB(K, 2) = 128: arrRGB(K, 3) = 0 'dunkelgrün
K = 3: arrRGB(K, 1) = 0: arrRGB(K, 2) = 0: arrRGB(K, 3) = 255 'blau
K = 4: arrRGB(K, 1) = 255: arrRGB(K, 2) = 255: arrRGB(K, 3) = 0 'gelb
K = 5: arrRGB(K, 1) = 255: arrRGB(K, 2) = 0: arrRGB(K, 3) = 255 'magenta
K = 6: arrRGB(K, 1) = 0: arrRGB(K, 2) = 255: arrRGB(K, 3) = 255 'hellblau
K = 7: arrRGB(K, 1) = 128: arrRGB(K, 2) = 0: arrRGB(K, 3) = 0 'rotbraun
K = 8: arrRGB(K, 1) = 0: arrRGB(K, 2) = 0: arrRGB(K, 3) = 128 'dunkelblau
K = 9: arrRGB(K, 1) = 0: arrRGB(K, 2) = 255: arrRGB(K, 3) = 0 'grün
K = 10: arrRGB(K, 1) = 128: arrRGB(K, 2) = 128: arrRGB(K, 3) = 0 'braun
K = 11: arrRGB(K, 1) = 128: arrRGB(K, 2) = 0: arrRGB(K, 3) = 128 'violett
K = 12: arrRGB(K, 1) = 0: arrRGB(K, 2) = 128: arrRGB(K, 3) = 128 'dunkeltürkis
K = 13: arrRGB(K, 1) = 128: arrRGB(K, 2) = 128: arrRGB(K, 3) = 128 'grau
For K = 1 To objChart.SeriesCollection.Count
Set Reihe = objChart.SeriesCollection(K)
With Reihe
If K