237 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (769 Punkte)
Hallo guten Tag, brauche bitte ein Excel vba. Die Spalten E5:E204, G5:G204, O5:O204 und die Zellen O3 und P3 eine bestimmte Farbe einfügen, (Rot: 255, Grün: 255 und Blau: 255). Die benannten Spalten und Zellen sind schreibgeschützt. Danke

9 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Jelena,

hast du schon mal den Makrorekorder für die Aufzeichnung der Lösung benutzt?

Bis später, Karin
0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Hi Jelena,

dir ist schon klar, dass das am Ende weiß ergibt? Das ist zwar eine bestimmte Farbe (die höchste die es gibt) aber da kannst du genauso gut die Farbe einer Zelle löschen und "Keine Farbe" zuweisen.

Gruß Mr. K.
0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)

Hallo Mr.K. Den Makrorekorder für diese Aufzeichnung habe ich nicht benutzt, ich meinte so eine Farbe. Danke

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)

Dieses Gelb hat einen anderen Farbcode. und zwar bei Blau die Zahl 102.

Wenn du den Makrorekorder benutzen würdest, könntest du zumindest selbstständig eine von dir gewählte Farbe anderen Zellen zuweisen. Allerdings ist das was der aufzeichnet auf den ersten Blick etwas verwirrend, da er oft mit Verdunklungstechniken wie TintAndShade arbeitet. Ich bevorzuge für die Farbwahl nach wie vor die gut alte klassische RGB-Funktion

Range("E5:E204,G5:G204,O5:O204,O3,P3").Interior.Color = RGB(255, 255, 102)

Gruß Mr. K.

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Jelena,

der Makrorekorder ist IMMER das 1. Hilfsmittel um festzustellen, was wie funktioniert. Im Nachhinein kann man sich darum kümmern, ob man auch wirklich alle aufgezeichneten Befehle verwenden MUSS um zu dem gewünschten Ergebnis zu kommen - und um das herauszufinden kann man hier im Forum Fragen stellen...wink

Der Makrorekorder zeichnet den folgenden Code auf wenn du die Farbe Gelb verwenden willst:

    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

Color ist bekanntlich der Befehl für die Farbe, folglich hat die Farbe Gelb die Nummer 65535

Wenn die Aufzeichnung erfolgte, ohne irgendwelche extra Schalter zu benutzen (wie z.B. Schattierung, Muster o.ä.), sind alle anderen aufgezeichneten Parameter die Standardangaben. Deshalb kann man diese bei der Wiederverwendung des aufgezeichneten Codes einfach weglassen, auch wenn sie der Makrorekorder aufgezeichnet hat, denn sie gehören nun mal zur Formatierung von Zellen und Excel kann ja nicht wissen, ob du sie nicht vielleicht doch (möglicherweise mit anderen Werten) verwenden möchtest. Der Code zum Gelb-Färben kann also auf diese 1 Zeile zusammengekürzt werden:

    With Selection.Interior
        .Color = 65535
    End With

Anstelle Selection setzt du dann natürlich deinen Gesamtbereich ein

    With Range("E5:E204,G5:G204,O5:O204,O3,P3").Interior
        .Color = 65535
    End With

Da es sich nur um 1 Befehl für diesen Bereich handelt, benötigst du natürlich keine With-Anweisung, weshalb die folgende Codezeile ausreicht:

    Range("E5:E204,G5:G204,O5:O204,O3,P3").Interior.Color = 65535

Bis später, Karin

Übrigens: der Hinweis zum Verwenden des Makrorekorders stammt nicht von Mr. K.  wink

0 Punkte
Beantwortet von vbastler Mitglied (292 Punkte)

Moin allerseits,

den Makrorecorder als besten ersten Einstieg ...? Nun ja - ich weiß nicht. 

Was Farben in XL betrifft, empfehle ich diesen Einstieg: Farbspielerei(en) Mit dem Suchbegriff (Plural/Singular) gibt es drei Themen, die sich mit Farben in XL beschäftigen.

Viel Spaß und bunte Grüße

d'r Bastler von den VBAsteleien.de

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Ich habe nicht geschrieben dass der Makrorekorder der "beste erste Einstieg" ist sondern dass er das erste HILFSMITTEL ist - vielleicht solltest du dir mal den Unterschied zwischen beidem zu Gemüte führen...

Bis später, Karin

0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)
Hallo, danke für die guten Vorschläge konnte mich leider nicht früher melden.
0 Punkte
Beantwortet von vbastler Mitglied (292 Punkte)
... ich werde führen ...
...