Laufzeitfehler 9
23.12.2015 17:16:27
Fri
ich brauche Eure Hilfe ....
Mit Hilfe dieses Forums habe ich für Excel 2007 ein Routine geschrieben, die in Abhängikeit von dem Wert eines Diagramm die Farbe der Markierung ändert.
Anbei der Code:
Sub FarbigMachen()
Dim i As Long
With ActiveSheet.ChartObjects("Diagramm 5").Select
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
Select Case Temp(i, 1)
Case Is = 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, _
_
42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, _
90, 92, 94, 96, 98, 100: Farbe = RGB(36, 56, 127)
Case Is = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, _
_
41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, _
89, 91, 93, 95, 97, 99: Farbe = RGB(143, 212, 0)
Case Else: Farbe = RGB(0, 0, 0)
End Select
.Points(i).MarkerForegroundColor = Farbe
.Points(i).MarkerBackgroundColor = Farbe
Next
End With
End With
End Sub
Dabei habe ich zwei Probleme, die ich nicht gelöst bekomme:1.) Ab dem 32 Datensatz bekomme ich den Fehler
"Laufzeitfehler '9': Index Außerhalb des gültigen Bereiches"
Die Variable i ist mit Log deklariert, das kann also nicht das Problem sein. Ich habe die Schleife auch mal fix bis zu eienm Wert laufen lassen mit
For i = 1 To 31
Ab dem Wert 32 kommt der Fehler, bis dahin alles gut
Woran kann das liegen ?
2.) Das ist kein echtes Problem, ich habe es durch ein Workaround gelöst bekommen, aber es muss irgendwie eleganter gehen. Es geht um die Case-Abfrage, ich möchte sagen, wenn der Wert gerade ist, dann Farbe = RGB(36, 56, 127), wenn ungerade dann Farbe = RGB(143, 212, 0). Aber irgebndwie kriege ich das nicht hin.
Es wäre super, wenn ihr mir da helfen könntet.
Danke udn viele Grüße
Fco