Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbformatierung und Dateigröße

Farbformatierung und Dateigröße
25.02.2022 11:09:05
Martin
Guten Morgen liebes Forum,
mir fallen gerade die Farbformatierungen auf die Füße und hatte schonmal festgestellt, dass Excel Farben leicht varieert und es nicht so genau nimmt mit den Farben.
Nun möchte ich beim Auslesen eine Unterscheidung treffen, ob die Zellen rot sind oder nicht.
Alternativ schwarz oder farbig
Mit folgendem Code formatiere ich ursprünglich die Zellen:

Cells(z, 6).Font.Color = -16777012 'rot
Nicht funktioniert haben beim Auslesen zur Unterscheidung die folgenden drei Varianten:

Cells(a, 6).Font.Color = -16777012 Then
Oder

Cells(z, 6).Font.Color > -16000000 Then
Oder

Cells(z, 6).Font. xlAutomatic
vermutlich weil schwarz?
Das gleiche Dilemma kommt später noch mit der Hintergrundfarbe....
Würde mich über Rat freuen, und wieso die ersten beiden Varianten nicht funktionieren.
p.s. wie kann ich die Dateigröße möglichst klein halten?
Habe es bereits als xlsb gespeichert.
Soll ich es aktiv als

xlAutomatic 
statt schwarz formatieren?
Ebenso vielleicht Tricks aktiv Dateigröße zu sparen mit Tintshade.....
Dankeschön und euch einen guten Start ins Wochenende =)
Grüße Martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Weshalb...
25.02.2022 12:15:25
{Boris}
Hi,
...färbst Du nicht mit RGB? Da sind die Farben dann doch absolut eindeutig?
If Cells(...).Font.Color = RGB(...;...;...) Then
VG, Boris
AW: Weshalb...
25.02.2022 12:52:22
Martin
Dankeschön,
kann ich dann auch z.B. bei RGB(255,102,0) den grünwert über 100 abfragen über ein if?
Und noch Tipps wegen der Dateigröße?
Grüße Martin
AW: RGB - UDF
25.02.2022 15:50:09
Boris
Hallo Boris,
leider sind die RGB-Werte wohl auch nicht eindeutig.....
Ich gebe eine Kombination aus R,G und B vor und Excel ändert diese leicht.
Mit der Textfarbe funktioniert relativ gut, aber mit der Interior.Color gibt es dieses Farbenauswürfeln.
Leider stehe ich total auf dem Schlauch, was den Link von dir betrifft.
Ich verstehe zwar prinzipiell was da passiert, aber die Syntax ist so komplett anders als wie ich normalerweise programmiere, dass ich es nicht für mich übertragen kann.....
Wie kann ich das schreiben?

Worksheets("Datenbank").Cells(a, 5).Interior.Color = RGB(255, 225, 215) sollte es sein, aber G gerne auch mal 228 etc.
If Worksheets("Datenbank").Cells(a, 5).Interior.Color 
Vielen lieben Dank, stehe sowas von auf dem Schlauch, zumal wieso Excel nicht einfach die Farbe einträgt, wie ich es vorgebe....
Danke danke danke und ein schönes Wochenende.
Anzeige
AW: RGB - UDF
25.02.2022 16:01:14
Martin
p.s. sorry habe so sehr dran gedacht dich direkt anzusprechen, dass ich den Namen vertippt habe.
Langsam echt Zeit fürs Bett.
FYI
Die Interior.color sollte RGB(255, 225, 215) sein, ist aber RGB(255, 234, 227) und RGB(255, 232, 225).
AW: RGB - UDF
25.02.2022 16:34:43
{Boris}
Hi,
ich habe Dir mal die Function so geschrieben, dass Du R, G und B einzeln auslesen kannst.
Die Funktionssyntax lautet:
=myRGB(DieZelle;DieFarbe;IntFont)
DieZelle ist die Zelle, aus der die Farbe ausgelesen werden soll. DieFarbe ist einer der 3 Strings "rot", "grün" oder "blau". Mit IntFont gibst Du an, ob Hintergrundfarbe (=Int) oder Schriftfarbe (=Font) - wobei gilt: WAHR oder 1 = Int, - 0 oder FALSCH = Font.
Z.B. =myRGB(A1;"grün";0) für das Grün aus der Schriftfarbe (Font) der Zelle A1.

Function myRGB(DieZelle As Range, DieFarbe As String, IntFont As Boolean)
Dim Rot As Long, Grün As Long, Blau As Long, Wert As Long
Wert = IIf(IntFont, DieZelle.Interior.Color, DieZelle.Font.Color)
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Grün = Wert Mod 256
Wert = (Wert - Grün) / 256
Blau = Wert Mod 256
Select Case DieFarbe
Case "rot": myRGB = Rot
Case "grün": myRGB = Grün
Case "blau": myRGB = Blau
End Select
End Function
Datei noch anbei. https://www.herber.de/bbs/user/151397.xlsm
VG, Boris
Anzeige
AW: RGB - UDF
28.02.2022 09:30:19
Martin
Guten Morgen Boris,
vielen lieben Dank!
Neue Woche, neues Glück und nun habe ich es auch mit deiner Hilfe hinbekommen.
Ich habe es mal wie folgt für mich umgeschrieben, dass die Zelle direkt eingelesen wird.
Auch wenn es funktioniert, werde ich wohl noch etwas tiefer in IIf(), Mod und select case reinschauen.
Denke bringt mich weiter, die weißen Flecken zu füllen ;)
Dankeschön jedenfalls nochmal, nun geht es, da ich die RGB Kriterien weiter fassen kann (z.B. Rot -20 > Gruen)

Dim Rot As Long, Grün As Long, Blau As Long, Wert As Long
Wert = Cells(a, 1).Interior.Color
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
MsgBox Rot & "r, " & Grün & "g, " & Blau & "b"

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige