Farbe einer Cell checken.
#1
Thumbs Up 
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
Antworten Top
#2
Hallo,

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

Grüße

Norbert
Antworten Top
#3
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
Antworten Top
#4
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste