161 Aufrufe
Gefragt in Tabellenkalkulation von benzer Einsteiger_in (7 Punkte)
Kategorie geändert von benzer

Hallo,

Ich möchte Freiformen (Ovale) einfärben.

Dieser Code funktioniert schonmal, jedoch brauche ich noch eine dritte Farbe.

Sub sbBlackRed()

    With ActiveSheet.Shapes.Range(Array(Application.Caller)).Fill
        .Visible = msoTrue
            If .ForeColor.RGB = RGB(0, 0, 0) Then
                    .ForeColor.RGB = RGB(255, 0, 0)
                Else
                    .ForeColor.RGB = RGB(0, 0, 0)
            End If
        .Transparency = 0
        .Solid
    End With

End Sub

Ich hab nur keinen Plan wie ich einen dritten RGB da mit rein bekomme.

Jetzt funktioniert schwarz und rot im Wechsel, aber ich brauche noch weiß als drittes.

Kann mir jemand helfen?

Gruß Benzer

2 Antworten

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Hi,

ungetestet etwa so:

    If .ForeColor.RGB = RGB(0, 0, 0) Then
        .ForeColor.RGB = RGB(255, 0, 0)
    ElseIf .ForeColor.RGB = RGB(255, 0, 0) Then
        .ForeColor.RGB = RGB(255, 255, 255)
    Else
        .ForeColor.RGB = RGB(0, 0, 0)
    End If

PS: Ein Oval ist zwar eine Form, aber kein Freeform, bei letzterem musst du jeden Knoten der Form selbst zeichnen. Oder hast du das Oval vielleicht aus vielen Knoten selbst erstellt? Egal, der Code klappt mit beiden Elementen.

Gruß Mr. K.
0 Punkte
Beantwortet von benzer Einsteiger_in (7 Punkte)
Hallo xlking,

THX das funktionier.

Gruß Benzer
...