mrvain
Goto Top

Excel Zellen Hintergrundfarbe vergleichen

Hallo,

ich möchte einen Bereitschafts-Kalender in Exel erstellen.

Auswahl der Mitarbeiter erfolgt per Zell-Farbe.

Nun möchte ich die Wochenenden gerne auswerten. Jeder Tag besitzt 3 Zellen.

1. Zelle= Datum
2. Zelle= wenn Wochenende - dann grau
3. Zelle= Mitarbeiter Farbe

Wie zähle ich nun die Anzahl der Wochenenden pro Mitarbeiter:

if Zelle=grau and zelle-rechts-daneben=blau then x=x+1

am besten als Funktion, wobei ich hier die Farben als Variablen hab...
Die Gesamt-Tage habe ich so berechnet (FUNKTION)

Function CountColor(rng As Range, iColor As Integer)
Dim rngAct As Range
Dim iCount As Integer
Application.Volatile
For Each rngAct In rng.Cells
If rngAct.Interior.ColorIndex = iColor Then
iCount = iCount + 1
End If
Next rngAct
CountColor = iCount
End Function
Wieso klappt dies nicht:
Function CountWeekend(rng As Range, iColor As Integer)
Dim rngAct As Range
Dim iCount As Integer
Application.Volatile
For Each rngAct In rng.Cells
If rngAct.Interior.ColorIndex = iColor And ActiveCell.Offset(0, -1).Value.Interior.ColorIndex = "15" Then  
iCount = iCount + 1
End If
Next rngAct
CountWeekend = iCount
End Function
Kommentar vom Moderator Biber am 22.09.2009 um 18:52:34 Uhr
Beitrag von "Entwicklung" nach "Excel" verschoben.

Content-ID: 125523

Url: https://administrator.de/contentid/125523

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

Iwan
Iwan 22.09.2009 um 15:11:00 Uhr
Goto Top
Wie postet man 100% falsch?
Nachdem man Google, Bing, Yahoo & Co., die FAQs und die Boardsuche erfolgreich ignoriert hat, erstellt man mindestens 5 neue Themen, alle in unterschiedlichen aber defintiv falschen Unterforen, möglichst mit kreativem Titel und undeutlichem Text, damit sich jeder etwas anderes vorstellen kann.

Farbe der aktiven Zelle ermitteln: click mich sanft
auch wenn der Beitrag dort über 5 Jahre alt ist, funktioniert es mit Excel 2003 trotzdem immer noch:
Sub ZellFarbe()
   Farbe = ActiveCell.Interior.ColorIndex
End Sub
MrVain
MrVain 22.09.2009 um 15:54:25 Uhr
Goto Top
Dies ist mir bekannt !

Es geht mir eher darum:

if Zelle=grau and zelle-rechts-daneben=blau then x=x+1
MrVain
MrVain 22.09.2009 um 16:43:09 Uhr
Goto Top
Habs hinbekommen:

Function CountWeekend(rng As Range, iColor As Integer)
Dim rngAct As Range
Dim iCount As Integer
    Application.Volatile
    For Each rngAct In rng.Cells
      If rngAct.Interior.ColorIndex = "15" And rngAct.Offset(0, 1).Interior.ColorIndex = iColor Then  
        iCount = iCount + 1
      End If
    Next rngAct
    CountWeekend = iCount
End Function


[Edit Biber] Codetags ergänzt [Edit]