Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Schleife, Farben für Datenbeschriftung

VBA: Schleife, Farben für Datenbeschriftung
23.06.2016 16:41:14
Hewad
Hallo zusammen,
ich habe mehrere Charts (Liniendramm) auf einem Arbeitsblatt mit jeweils 3 bis 4 Linien (Serien) pro Diagramm.
Ich möchte die Farbencodes der DataLabels (Datenbeschriftung), die bereits in den Zellen C100 bis C101 stehen übernehmen (insgesamt gibt es 4 Farben)
Ich schafe zwar mit meinem Code über alle Datenbeschriftungen auf alle Diagrammen zu ändern, allerdings springt die Schleife nicht zur nächsten Zelle, sodass die allen DataLabels die gleiche Farbe zu geordnet wird.
Weiß nicht was ich falsch mache.
Vielen herzlichen Dank für die Hilfe
hier ist mein Code
Sub Chart_format()
'variablen
Dim anzahl_chart As Integer
Dim labelColor As String
Dim k As Integer
Dim i As Integer
Dim p As Integer
anzahl_chart = ActiveSheet.ChartObjects.Count
Debug.Print anzahl_chart
For p = 1 To anzahl_chart
ActiveSheet.ChartObjects(p).Activate
For k = 1 To ActiveChart.FullSeriesCollection.Count
Debug.Print ActiveChart.FullSeriesCollection.Count
ActiveChart.FullSeriesCollection(k).DataLabels.Select
Debug.Print ActiveChart.Name
i = 100
labelColor = ActiveSheet.Cells(i, 3).Value ' der Farbencode steht in der Zelle C100
Debug.Print labelColor
With Selection
.Font.Color = 0
.Font.Color = labelColor
.Font.Bold = msoTrue
End With
i = i + 1 ' Hier soll beim nächsten Durchlauf in die nächste Zelle C101 ü _
berspringen
Next k
Next p
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Schleife, Farben für Datenbeschriftung
23.06.2016 18:28:08
ChrisL
Hi
Schleife p
Schleife k
i = 100
' mach was
i = i + 1
Next k
Next p
i wird immer wieder auf 100 zurück gestellt. Müsste zwischen Schleife p und k oder sogar vor Schleife p, je nach gewünschtem Resultat (je Diagramm neu oder durchgehend)
cu
Chris

Anzeige
AW: VBA: Schleife, Farben für Datenbeschriftung
23.06.2016 18:29:33
ChrisL
Zeile "i = 100" verschieben (damit keine Missverständnisse entstehen)

AW: VBA: Schleife, Farben für Datenbeschriftung
23.06.2016 18:37:20
fcs
Hallo Hewad,
dein Code hat 2 Problemstellen:
1. Zeile in der I auf 100 gesetzt wird
Der Startwert für die Zeile mit der 1. Farbe muss vor der Zeile mit
"For k = 1 To ActiveChart.FullSeriesCollection.Count"
stehen. Sonst wird i innerhalb der Schleife immer wieder auf 100 gesetzt.
2. Variablendeklaration
Die Variable "labelColor" muss als long deklariert werden, wenn in C10 bis Cxxx die Farbwerte als Zahlen stehen.
Gruß
Franz
Sub Chart_format()
'variablen
Dim anzahl_chart As Integer
Dim labelColor As Long
Dim k As Integer
Dim i As Integer
Dim p As Integer
Dim objDatalabels As DataLabels
anzahl_chart = ActiveSheet.ChartObjects.Count
Debug.Print anzahl_chart
For p = 1 To anzahl_chart
ActiveSheet.ChartObjects(p).Activate
i = 100
For k = 1 To ActiveChart.FullSeriesCollection.Count
Debug.Print ActiveChart.FullSeriesCollection.Count
Set objDatalabels = ActiveChart.FullSeriesCollection(k).DataLabels
objDatalabels.Select
Debug.Print ActiveChart.Name
labelColor = ActiveSheet.Cells(i, 3).Value ' der Farbencode steht in der Zelle C100
Debug.Print labelColor
With objDatalabels
.Font.Color = 0
'                .Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = labelColor
.Font.Color = labelColor
.Font.Bold = msoTrue
End With
i = i + 1 ' Hier soll beim nächsten Durchlauf in die nächste Zelle C101 ü _
berspringen
Next k
Next p
End Sub

Anzeige
AW: VBA: Schleife, Farben für Datenbeschriftung
24.06.2016 09:52:06
Hewad
Vielen dank lieber Franz,
es hat perfekt funktiniert :-)
Gruß
Hewad
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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