12.06.2018, 16:43
Hallo zusammen,
habe ein sehr merkwürdiges Problem mit Excel. :20:
Ich habe zwei Pivotdiagramme auf einem Tabellenblatt welche ich durchloope um je nach Kategorienbezeichnung der Serien eine Farbe zuzuweisen. Eigentlich sehr simpel.
Nun crasht aber Excel komplett und zwar immer nur wenn ich einer vollen Serie (z.B. allen grünen Balken der Kategorie "done") die Datenbeschriftung hinzufüge (egal ob dies per Rechtsklick oder per Excel Makro geschieht).
Wenn alle Datenbeschriftungen bereits vorhanden sind (oder ich speichere und Excel neustarte nach dem hinzufügen der Datenbeschriftung) passiert nichts und ich kann das Macro so oft wie möglich laufen lassen.
Ist recht viel Code weil ich einige Cases noch mit eingebaut habe aber eigentlich sehr simpel. Macro schaut nur ob es sich um ein Donut Chart oder ein Balkenchart handelt und loopt die Serien bzw. Punkte (bei Donutchart) durch um sie gemäß ihrer Namen einzufärben.
Ist eine feine Sache für Pivotcharts die einfach nicht ihre Farben behalten wollen (-;
Hoffe jemand hat eine Idee woran es liegt. Da Excel wirklich instant crasht vermute ich ja dass es sich um einen richtigen Bug handelt. Kann man bei Microsoft eigentlich Bugreports einreichen?
Schonmal danke für jede Hilfe.
Beste Grüße,
Michael
habe ein sehr merkwürdiges Problem mit Excel. :20:
Ich habe zwei Pivotdiagramme auf einem Tabellenblatt welche ich durchloope um je nach Kategorienbezeichnung der Serien eine Farbe zuzuweisen. Eigentlich sehr simpel.
Nun crasht aber Excel komplett und zwar immer nur wenn ich einer vollen Serie (z.B. allen grünen Balken der Kategorie "done") die Datenbeschriftung hinzufüge (egal ob dies per Rechtsklick oder per Excel Makro geschieht).
Wenn alle Datenbeschriftungen bereits vorhanden sind (oder ich speichere und Excel neustarte nach dem hinzufügen der Datenbeschriftung) passiert nichts und ich kann das Macro so oft wie möglich laufen lassen.
Ist recht viel Code weil ich einige Cases noch mit eingebaut habe aber eigentlich sehr simpel. Macro schaut nur ob es sich um ein Donut Chart oder ein Balkenchart handelt und loopt die Serien bzw. Punkte (bei Donutchart) durch um sie gemäß ihrer Namen einzufärben.
Ist eine feine Sache für Pivotcharts die einfach nicht ihre Farben behalten wollen (-;
Hoffe jemand hat eine Idee woran es liegt. Da Excel wirklich instant crasht vermute ich ja dass es sich um einen richtigen Bug handelt. Kann man bei Microsoft eigentlich Bugreports einreichen?
Schonmal danke für jede Hilfe.
Beste Grüße,
Michael
Code:
Sub RefreshAll()
Dim LoChartType As Long
Dim StSeriesName As String
Dim ActiveChartObject As ChartObject
Dim ActiveSeries As Series
Dim ActivePoint As Point
Dim LoPointCounter As Long
Dim Farbe As Long
Dim Rot As Long
Dim Gruen As Long
Dim Blau As Long
ActiveWorkbook.RefreshAll
'Call Protect_Unprotect
For Each ActiveChartObject In ActiveSheet.ChartObjects
For Each ActiveSeries In ActiveChartObject.Chart.FullSeriesCollection
LoChartType = ActiveChartObject.Chart.ChartType
Select Case LoChartType
Case 52
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)
Case -4120
For LoPointCounter = 1 To ActiveSeries.Points.Count
Set ActivePoint = ActiveSeries.Points(LoPointCounter)
Select Case ActiveSeries.XValues(LoPointCounter)
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
ActivePoint.Format.Fill.ForeColor.RGB = RGB(Rot, Gruen, Blau)
Next
End Select
Next
Next
'Call Protect_Unprotect
End Sub