AW: Diagramme DataLabels hinzufügen crasht Excel
12.06.2018 12:26:03
Michael
Nachtrag2:
So noch etwas herausgefunden jetzt wird es etwas komplexer. Der Code zum einfügen der Datenlabels stand ursprünglich in einem Macro was auch das Einfärben der Balken des Balkencharts um das es hier geht gesteuert hat (man sieht es im Macro RefreshAll ganz unten habe ich .ApplyDatalabels mit ' ausgeklammert).
Den Code für .ApplyDatalabels habe ich in ein extra Macro test() gepackt welches auch durch alle .FullSeriesCollection loopt.
Starte ich Excel kann ich jetzt RefreshAll() so oft ich will nutzen (Excel crasht nicht). Nutze ich jedoch einmal test() dann crasht RefreshAll() bei der nächsten Benutzung.
Sub RefreshAll()
Dim LoChartType As Long
Dim StSeriesName As String
Dim ActiveChartObject As ChartObject
Dim ActiveSeries As Series
Dim Farbe As Long
Dim Rot As Long
Dim Gruen As Long
Dim Blau As Long
ActiveWorkbook.RefreshAll
For Each ActiveChartObject In ActiveSheet.ChartObjects
For Each ActiveSeries In ActiveChartObject.Chart.FullSeriesCollection
StSeriesName = ActiveSeries.Name
Select Case StSeriesName
Case "1 done"
Farbe = ActiveSheet.Range("T7").Interior.Color
Case "2 on hold"
Farbe = ActiveSheet.Range("T9").Interior.Color
Case "3 in progress"
Farbe = ActiveSheet.Range("T8").Interior.Color
Case "4 overdue"
Farbe = ActiveSheet.Range("T10").Interior.Color
End Select
Rot = Farbe Mod 256
Farbe = (Farbe - Rot) / 256
Gruen = Farbe Mod 256
Farbe = (Farbe - Gruen) / 256
Blau = Farbe Mod 256
ActiveSeries.Format.Fill.ForeColor.RGB = RGB(Rot, Gruen, Blau)
'ActiveSeries.ApplyDataLabels
Next
Next
End Sub
Sub test()
Dim ActiveChartObject As ChartObject
Dim ActiveSeries As Series
For Each ActiveChartObject In ActiveSheet.ChartObjects
For Each ActiveSeries In ActiveChartObject.Chart.FullSeriesCollection
ActiveSeries.ApplyDataLabels
Next
Next
End Sub