Zellen nach Schriftfarbe filtern

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Zellen nach Schriftfarbe filtern

#1

Beitrag von d'r Bastler »

Moin allerseits,
manchmal möchte man etwas machen, was Profi-VBAler an den Rand des Wahnsinns treibt :lol: Z.B. habe ich eine nette Sudoku-VBAstelei schon seit Jahren im Einsatz und optimiere immer wieder mal. Diesmal mit folgender Aufgabe:

On_Open wird ein neues Spiel aus dem Netz geklaut und in 9 x 9-Raster eingetragen. Diese Zellen haben als Textfarbe schwarz und sind dann schreibgeschützt. Eigene Einträge im Raster erscheinen blau und können natürlich geändert werden. Wenn man sich im Spiel nun völlig verrannt hat, will man es vielleicht einfach neu starten. Also müssen alle nicht schwarzen Zahlen wieder raus.

Leichte Übung dachte ich: Schleife durch das Raster - wenn Schriftfarbe <> vbBlack, dann Zelle leer. Vom Prinzip her gar nicht ganz falsch - nur dass VBA xlBlack nicht erkennt! Erst wenn man .Font.Color <> 657930 eingibt, klappt der Spaß. Also musste ein probates Hilfsmittel her: Debug.Print. Hier eine Beispiel-Schleife, die natürlich angepasst werden muss:

Code: Alles auswählen

For i = 2 To 10
    For a = 2 To 10
        Debug.Print i & ", " & .Cells(i, a).Font.Color
    Next a
Next i
Als Ergebnis erhält man Im Direktfenster (Strg+g) die (ewiglangen) Farbcodes aller abgefragten Zellen und kann diese dann entsprechend nutzen.

Viel Spaß damit!
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
xlKing
Beiträge: 37
Registriert: 30. Mai 2024, 19:42
Hat sich bedankt: 2 Mal
Danksagung erhalten: 35 Mal
Kontaktdaten:

Re: Zellen nach Schriftfarbe filtern

#2

Beitrag von xlKing »

Hallo heb,

Tja, erstens kann Excel xlBlack nicht erkennen, weil die Konstante vbBlack heißt. Und zweitens: Wenn du eine benutzerdefinierte Farbe wählst, die zwar noch schwarz ist, sich aber schon in den Graubereich verschiebt, dann kann auch vbBlack mit dem Wert 0 nichts mehr ausrichten. In deinem Fall hast du den RGB-Code 10,10,10 gewählt. Meine Frage ist jetzt: Hast du diese Farbe selbst gewählt oder ist sie über die Schriftfarbe "Automatisch" aufgrund einer anderen Zellhintergrundfarbe entstanden?

Gruß Mr. K.
Folgende Benutzer bedankten sich beim Autor xlKing für den Beitrag:
d'r Bastler
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: Zellen nach Schriftfarbe filtern

#3

Beitrag von d'r Bastler »

Moin Mr. K.

zur xl/vbBlack-Geschichte. Ich hatte da tatsächlich diesen lästigen Fehler gemacht. Danke sehr für den Tritt in den Hintern :)

Die Farbauswahl habe ich über das Textfarben-Menü gesetzt. Deine Frage ist aber ein sehr guter Hinweis, solche Sachen künftig mit RGB zu definieren.

lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste