Herbers Excel-Forum - das Archiv

Farbfelder zählen lassen - aber wie ???

Bild

Betrifft: Farbfelder zählen lassen - aber wie ???
von: Midgaardslang

Geschrieben am: 03.01.2007 09:19:54
Hallo,
habe folgendes Problem:
Ich erarbeite gerade eine umfangreiche Zeiterfassungskarte für die Lohnabrechnung 2007 - soweit bin ich fertig, nur habe ich ein Problem, das ich nicht lösen kann - zumindest nicht zufriedenstellend.
Zur kurzen Erklärung:
Für verschiedene Tage ( normal, krank, Urlaub, etc ) habe ich verschiedene Farbcodes in einer angefügten Legende angelegt, nun möchte ich jedoch, das Excel mir am Ende der Tabelle die "Farben ausliest".
Also wenn 3 Felder gelb markiert sind, soll er mir in einem Feld auf dem gleichen Tabellenblatt anzeigen "3", oder 12 rote, dann eben "12", usw. Ich kann mir nur vorstellen, das man dies mit einem VBA-Script hinbekommt, da mir jede Idee fehlt, dies auf "normalen Wege" zu machen.
Ich habe ungefähr 6 verschiedene Farben, nach denen sortiert werden muss :-).
Über eine Hilfe oder einen Ansatz wäre ich sehr dankbar, da ich mir seit Tagen die Zähne daran ausbeisse und nicht weiterkomme, alles andere stellt kein Problem dar.
Bild

Betrifft: AW: Farbfelder zählen lassen - aber wie ???
von: Bertram

Geschrieben am: 03.01.2007 09:31:27
Hallo,
mal als Ansatz:
Sub FarbenZählen()
Dim zelle As Range
Dim intGelb As Integer
Dim intRot As Integer
Dim intGrün As Integer
intRot = 0
intGelb = 0
intGrün = 0
For Each zelle In Range("S:S").Cells 'Bereiche musst du noch anpassen
If zelle.Interior.ColorIndex = "6" Then intGelb = intGelb + 1
If zelle.Interior.ColorIndex = "3" Then intRot = intRot + 1
If zelle.Interior.ColorIndex = "4" Then intGrün = intGrün + 1
Next zelle
Range("R1").Value = intGrün & " grün"
Range("R2").Value = intGelb & " gelb"
Range("R3").Value = intRot & " rot"
End Sub

Das funktioniert aber nur, wenn die Farbe nicht durch bedingte Formatierung erstellt wird. Statt der Ifs kannst du auch
Select Case zelle.Interior.Colorindex
Case Is = 6
intGelb = intGelb + 1
Case Is = 3
intRot = intRot + 1
usw.
End Select
verwenden.
Gruß
Bertram
Bild

Betrifft: AW: Farbfelder zählen lassen - aber wie ???
von: Midgaardslang

Geschrieben am: 03.01.2007 11:15:06
Danke Danke Danke.
Funktioniert nach Anpassung genau wie ich es mir gewünscht habe.
Da sieht man mal wie weit man kommt, wenn man mal einen intelligenten Menschen trifft :-).
Auf die IntegerFunktion wäre ich die nächsten 2 Wochen nicht gekommen, warum kompliziert, wenn das einfache so nahe liegt?
Nochmals Danke
Bild

Betrifft: Danke für die Blumen:-) oT
von: Bertram
Geschrieben am: 03.01.2007 11:25:31
Bild

Betrifft: Eine hab ich dann doch noch....
von: Midgaardslang

Geschrieben am: 07.01.2007 14:52:51
Hallo,
wüßte jemand, wie ich im VBA auch noch den oben genannten Sachverhalt in Wochentage zerlgen kann? Leider habe ich hier nur eine Formel auf Grundelage von Wenn,Dann,Sonst etc im Kopf, die ich aber im VBA so nicht benutzen kann.
Im Grunde benötige ich eine Abgrenzung in Mo-Do und Fr, und das er mir die Farbfelder, was dank Bertrams Ansatz wunderbar funktionierte, nach verschiedenen Wochentagen zählt und mir dann die Anzahl der Wochentage in zwei Zellen mit Mo-Do und Fr zählt. R10:R13 in die eine, R14 in die andere, als grobes beispiel.
 Bild
Excel-Beispiele zum Thema "Farbfelder zählen lassen - aber wie ???"
Makro nach Verlassen einer Zelle ausführen Nur numerische Eingaben zulassen
Bestimmte Anzahl von Zeichen zulassen Einmalige Eingabe zulassen
Zelle blinken lassen Nach Verlassen von Spalte B Spalte C markieren
Ein Bild sekundenlang anzeigen lassen Laufwerke im Dialog zur Auswahl anzeigen lassen
Diagramm-Datenreihen blinken lassen und Linie langsam zeichnen Im Textfeld nur Eingabe von 2 Ziffern zulassen, dann zum nächsten