Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Felder eines Kreisdiagramms per VBA einfärben

Felder eines Kreisdiagramms per VBA einfärben
07.06.2005 10:06:21
Reinhard
Servus allerseits!
Ich habe folgendes Problem:
Ich möchte per VBA Kreisdiagramme erstellen. Wichtig ist dabei jedoch das ich den einzelnen Segmenten bestimmte Farben zuordnen kann, da bestimmte Farben für einzelne Produktkategorien in unserem Unternehmen vorgegeben sind.
Wie kann ich per VBA auf die einzelnen Felder des Diagramms zugreifen?
Hier der Code den ich verwende:

Sub diagrammezeichnen()
Dim x As Long
Dim stArt As Integer
Dim chartname As String
stArt = 0
For x = 1 To 15
If Worksheets(2).Cells(x, 1) = "" Then
chartname = "chart" + CStr(x)
ActiveSheet.ChartObjects.Add(30, 150, 400, 300).Name = chartname
ActiveSheet.ChartObjects(chartname).Activate
ActiveChart.ChartType = xl3DPie
ActiveChart.SetSourceData Source:=Sheets("Ausgabe").Range("A" + CStr(stArt + 2) + ":A" + CStr(x - 1) + ",D" + CStr(stArt + 2) + ":D" + CStr(x - 1)), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = Worksheets(2).Cells(stArt + 1, 1)
ActiveChart.Location Where:=xlLocationAsObject, Name:="Ausgabe"
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent, LegendKey:=False, HasLeaderLines:=True
stArt = x
End If
Next
End Sub

Danke in voraus für eure Hilfe!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Felder eines Kreisdiagramms per VBA einfärben
07.06.2005 10:24:18
Sylvio
Hallo,
So vielleicht?
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection.Interior
.ColorIndex = 33
.Pattern = xlSolid
End With
Gruß Sylvio
AW: Felder eines Kreisdiagramms per VBA einfärben
07.06.2005 10:26:41
ChrisSp
Hallo Reinhard,
ich versuch´s mal mit einer recht kurzen Beschreibung. Wenn bei dir immer die Reihenfolge & Anzahl der Diagrammfelder gleich ist, kannst du sie direkt mit "ActiveChart.SeriesCollection(j)" ansprechen, j ist hier die Nummer des Feldes.
mit ".Interior.ColorIndex" müsstest du dann eigentlich die Farbe zuweisen können
Ich hab das aber noch nicht bei einem Kreisdiagramm ausprobiert, aber ich das Prinzip ist ja immer gleich!
Wenn sich Reihenfolge oder Anzahl der Diagrammfelder verändert, muss man das ganze etwas komplexer aufbauen, deshalb erstmal die Frage ob dir diese kurze Beschreibung schon hilft?
Gruss
Chris
Anzeige
Erst nachdenke, dann schreiben :o)
07.06.2005 10:42:46
ChrisSp
sorry... du hast ja nur eine Reihe - richtig?
Du musst also die unterschielichen ".Points" ansprechen, j ist wieder die Nummer
With ActiveChart.SeriesCollection(1).Points(j)
With .Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
.Shadow = False
With .Interior
.ColorIndex = 5
.Pattern = xlSolid
End With
End With
bleibt halt nur noch die Frage mit der Reihenfolge und Anzahl?
Gruss
Chris
Gruss
Chris
AW: Erst nachdenke, dann schreiben :o)
07.06.2005 14:18:49
Reinhard
Also das schaut denk ich sehr vielversprechend aus - ich kanns nur grad nicht ausprobieren weil ich gerade an einem anderen Problem arbeite. Werd mich aber noch melden obs funktioniert hat!
Anzeige
Bis dann
07.06.2005 14:50:47
ChrisSp
das wäres super!
Gruss
Chris
AW: Bis dann
07.06.2005 15:03:01
Reinhard
Dein Code hat super funktioniert! Danke dafür!
Eine Frage hätte ich aber noch: Wie kann ich auf die Beschriftung eines Punktes zugreifen? (z.b.: die Regionen in dem Bild unten) Je nach Beschriftung soll der Bereich nämlich eine unterschiedliche Farbe bekommen!
Userbild
AW: Bis dann
07.06.2005 16:40:52
ChrisSp
da kommst du mit ".DataLabel" ran.
ActiveChart.SeriesCollection(1).Points(1).DataLabel
und dann halt die ganz normale Formatierung.
Gruss
Chris
AW: Bis dann
07.06.2005 16:56:47
Reinhard
Funktioniert!
Ganz ein großen DANKESCHÖN für deine Hilfe!
Anzeige

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige