Color.Index in Excel 2007
27.05.2007 17:40:09
Michael
Ich habe eine umfangreiche Mappe in Excel 2003 entwickelt. Dabei benutze ich VBA um Diagramme mit verschiedenen Texten und Texthintergründen darzustellen. Das hat in Excel 2003 bestens geklappt. Der Code sieht so aus:
Sub All_SetTrigramInside()
Dim i As Integer 'Zähler
Dim intRow As Integer 'Zeilennummer auf dem Tabellenblatt
Dim chtTrigram As Chart 'Diagramm
Set chtTrigram = Sheet4.ChartObjects("trigrams").Chart
intRow = 134
For i = 1 To 24
With chtTrigram.SeriesCollection(2).Points(i)
.DataLabel.Characters.Text = Sheet27.Range("DF" & intRow) Text
.Interior.ColorIndex = Sheet27.Range("DG" & intRow) 'Hintergrundfarbe
End With
intRow = intRow + 1
Next i
End Sub
In Excel 2007 beendet die Zeile "Interior.ColorIndex = Sheet27.Range("DG" & intRow)" das Programm vollständig und man muß neu starten. Durch Experimente habe ich herausgefunden, dass folgender Code, der viel umständlicher ist, funktioniert:
Sub All_SetTrigramInside()
Dim i As Integer 'Zähler
Dim intRow As Integer 'Zeilennummer auf dem Tabellenblatt
Dim chtTrigram As Chart 'Diagramm
Dim intColFont(24) As Integer 'Schriftfarbe
intRow = 134
For i = 1 To 24
intColFont(i) = Sheet27.Range("DG" & intRow) 'Einlesen Hintergrundfarbe Patch für 2007
intRow = intRow + 1
Next i
Set chtTrigram = Sheet4.ChartObjects("trigrams").Chart
intRow = 134
For i = 1 To 24
With chtTrigram.SeriesCollection(2).Points(i)
.DataLabel.Characters.Text = Sheet27.Range("DF" & intRow) Text
.Interior.ColorIndex = intColFont(i) 'Hintergrundfarbe
End With
intRow = intRow + 1
Next i
End Sub
Woran liegt das? Excel 2007 kann nun viel mehr Farben darstellen. Wie kann ich herausfinden welche Farbnummer für welche Farbe steht? Und wie geht Excel 2003 dann mit dieser Nummer um?
Danke für Eure Hilfe
Michael