Clever-Excel-Forum

Normale Version: Farbe einer Cell checken.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich möchte anhand einer Cell Hintergrund Farbe abfragen und danach eine Checkbox = True setzen.
Hier mein Code bisher + Kommentare
Code:
Private Sub CommandButton1_Click()
Dim finden As Range
Dim bier, icetea, iceteapreis As Integer
Dim bierpreis As Double
Worksheets("Bierkasse").Activate
bierpreis = 1.5
iceteapreis = 1

Set finden = Columns(1).Find(what:="Alexander") ' Wer soll gesucht werden?
If Cells(finden.Row, 2).Value > 0 Or Cells(finden.Row, 3).Value Then ' hat derjenige überhaupt was getrunken?
    Dim flaschenBier, flaschenTea As Integer 'Anzahl der Flaschen jeweils
    flaschenBier = Cells(finden.Row, 2)
    flaschenTea = Cells(finden.Row, 3)
    Me.TextBox3.Value = flaschenBier * bierpreis + flaschenTea * iceteapreis 'Berechnung des Gesamt Konsums
    Me.TextBox3.Value = Format(Me.TextBox3.Value, "###.###€") 'In TextBox wird formatierter Betrag mit € geschrieben
    If Cells(finden.Row, 4).Interior.Color = 35 Then 'Hier soll geschaut werden ob bezahlt wurde, d.h ob die Celle grün ist oder rot
        Me.CheckBox1.Value = True
    End If
End If
End Sub

Leider funktioniert die If-Abfrage nicht ganz. Grün hat den Farbcode 35 und Rot 38, wie schaffe ich es das ich diesen Hintergrundfarben Code so Abfrage das er bei grün (35) dann die Box auf True setzt
Danke schonmal für die Antworten
Hallo,

hast Du schon einmal mit: Interior.ColorIndex - probiert?

Grüße

Norbert
Code:
Private Sub CommandButton1_Click()
Dim finden As Range
Dim bier, icetea, iceteapreis As Integer
Dim bierpreis As Double
Dim flaschenBier, flaschenTea As Integer 'Anzahl der Flaschen jeweils
Dim cellColor As Long 'Variable zur Speicherung der Hintergrundfarbe 
Worksheets("Bierkasse").Activate
bierpreis = 1.5
iceteapreis = 1
Set finden = Columns(1).Find(what:="Alexander") ' Wer soll gesucht werden?
If Not finden Is Nothing Then ' Überprüfen, ob die gesuchte Person gefunden wurde
    ' hat derjenige überhaupt was getrunken?
    If Cells(finden.Row, 2).Value > 0 Or Cells(finden.Row, 3).Value > 0 Then
        ' Hintergrundfarbe der Zelle in Spalte 2 abfragen
        cellColor = Cells(finden.Row, 2).Interior.Color
        If cellColor = RGB(146, 208, 80) Then ' wenn die Hintergrundfarbe grün ist
            ' Checkbox auf True setzen
            Me.CheckBox1.Value = True
        End If
        ' weiterer Code ...
    End If
End If

Vielleicht hilft Dir das
Hi,

Excel und Farben ist eine Geschichte, die nicht wirklich gut funktioniert. Wieso? Das merkst du gerade...

Selbst wenn obige Vorschläge funktionieren: Was machst du, wenn jemand nur ein ähnliches Grün verwendet?

Wie kommt überhaupt die grüne Farbe in die Zelle? Wenn es durch eine bed.Form. geschieht, dann kannst du die grüne Farbe so nicht auslesen, sondern musst z.B. cellColor = Cells(finden.Row, 2).DisplayFormat.Interior.Color verwenden.

Bessere Lösung: Verwende eine weitere Spalte, z.B. "bezahlt" und setzte dort irgendwas rein (ein "x" oder das Datum), wenn bezahlt wurde. Und dann beziehst du dich in deinem Code darauf. Und die Farbe machst du dann über eine bed.Form.