ich erstelle per Makro ein gestapeltes Balkendiagramm (je Abteilung: IST - Hochrechnung - Ziellücke) mit Datenbeschriftung. Die Werte der Datenbeschriftung (%) möchte ich nachträglich in Absolutwerte ändern. Die Werte hierfür stehen auf dem Tabellenblatt, auf dem auch das Diagramm eingebettet ist. Für die Datenreihen (Balken) 2 bis 4 funktioniert das Ändern der Datenbeschriftung auch tadellos. Nur bei der ersten Datenreihe klappt das nicht und ich weiß nicht weshalb.
Auszug des problematischen Codes (größerer Code Ausschnitt siehe unten):
'Datenbeschriftung IST ersetzen
ActiveChart.SeriesCollection(1).Points(1).DataLabel.Select
With Selection
.Characters.Text = Range("C9")
.Characters.Font.Size = 12
End With
Das Makro zieht sich den richtigen Wert aus C9, überträgt ihn aber dann nicht ins Diagramm. Die Schriftgröße wird aber geändert. Das Makro läuft ohne Fehlermeldung durch.
Sub Makro2()
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.SetSourceData Source:=Range("'Tabelle1'!$B$14:$E$18")
.ChartType = xlBarStacked
.Axes(xlValue).Select
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = Range("L20")
.Axes(xlValue).MajorUnit = 0.2
.Axes(xlValue).MajorUnit = 1
'Legende unten
.SetElement (msoElementLegendBottom)
'Datenbeschriftungen einfügen
.SeriesCollection(1).ApplyDataLabels
.SeriesCollection(2).ApplyDataLabels
.SeriesCollection(3).ApplyDataLabels
'Format x-Achse
.Axes(xlValue).Select
With Selection.TickLabels
.NumberFormat = "0%"
.Font.Size = 12
End With
'Format y-Achse
.Axes(xlCategory).Select
With Selection
.TickLabels.Font.Size = 12
.TickMarkSpacing = 6
End With
End With
'Datenbeschriftung IST ersetzen
ActiveChart.SeriesCollection(1).Points(1).DataLabel.Select
With Selection
.Characters.Text = Range("C9")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(2).DataLabel.Select
With Selection
.Characters.Text = Range("C10")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(3).DataLabel.Select
With Selection
.Characters.Text = Range("C11")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(4).DataLabel.Select
With Selection
.Characters.Text = Range("C12")
.Characters.Font.Size = 12
End With
Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank für eure Hilfe und beste Grüße
Herbert