Format Fill: Patterned+Color tut nicht
13.08.2020 10:53:22
laura_v
ich bin mit meinem VBA-Latein am Ende und das ist für gewöhnlich ganz gut. Wenn ich nicht weiter weiß, google ich viel, lande meistens hier oder werfe den Makro-Rekorder an.
So auch hier. Im gesamten Skript möchte ich automatisiert ein Diagramm aus vielen (>100) Datenpunkten erstellen, so dass jeder Datenpunkt eine eigene Datenreihe ist und man ihn gezielt wegfiltern kann. Bestimmten Datenreihen (= Datenpunkten) möchte ich spez. Formatierungen geben, alle gemustert (patterned) mit Vordergrunds- und Hintergrundsfarbe.
Ich habe ein sehr abgespecktes Excel-File mit 5 Datenpunkten beigefügt (https://www.herber.de/bbs/user/139603.xlsm). Ich muss dazu sagen, ich bin nicht die effizienteste Programmiererin ;) Im Reiter "Plot" muss man auf den Button klicken. Die ersten 3 Punkte sollen rot gepunktet formatiert werden, die letzten beiden grün mit Konfettimuster.
Folgenden Code Schnippsel habe ich mit Hilfe des Makro-Rekorders zusammengestellt.
While l .ForeColor.RGB = RGB(255, 0, 0)
.BackColor.RGB = RGB(255, 255, 255)
.Patterned msoPattern70Percent
End With
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.Visible = msoTrue
.Weight = 0.75
End With
ElseIf l > 2 And m .ForeColor.RGB = RGB(0, 255, 0)
.BackColor.RGB = RGB(255, 255, 255)
.Patterned msoPatternLargeConfetti
End With
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.Visible = msoTrue
.Weight = 0.75
End With
End If
l = l + 1
Wend
Wie man im Excel schön sieht, sieht man weder das rote noch das grüne Muster. Ein schritt-für-schritt Debugging ergab, dass die Farbe korrekt umgesetzt wird als voll ausgefülltes Symbol und sobald der "Patterned" Befehl kommt, wird die Farbe nicht mehr berücksichtigt. Eine andere Reihenfolge bringt auch nichts, erst "Patterned", dann "ForeColor", weil dann gar kein Muster mehr erscheint. Ziemlich blöd, dass die Mustervordergrundsfarbe "ForeColor" heißt, aber auch die Farbe für die komplette Farbfüllung.Ich weiß nicht mehr weiter und finde dazu auch nichts. Warum schlägt der Rekorder etwas vor, wenn es nicht funktioniert? >_ Für jede Hilfe wäre ich dankbar. Hoffe, das Beispiel ist nachvollziehbar.
Dankeschön und viele Grüße
Laura
Anzeige