Hallo,
ich habe eine Tabelle mit 5 Spalten.
In jeder Spalte sind einige Zellen gelb hinterlegt.
Nun soll in jeder Spalte die Anzahl der gelben Felder automatisch gezählt werden.
Was muss ich eingeben?
Danke im Voraus.
Hi Bernd,
sind die Felder mit bedingter Formatierung gefärbt oder händisch? Bei ersterem könntest du mit ZÄHLENWENN - gleiche Bedingung wie bed. Form. - zum Ziel kommen. Bei händischer Färbung geht das meiner Meinung nach nur mit VBA. Da kann ich aber nicht helfen.
Hallo,
leider händisch eingefärbt.
Hallo Günter,
vielen Dank.
Ich bin nicht so bewandert,
Der Tabellenbereich ist Tabelle Zusammenfassung
D3:D275
E3:E275
F3:F275
G3:G275
H3:H275
jede Spalte für sich soll gezählt werden.
Was muss wo eingetragen werden:
Danke
Hallo,
du könntest mal folgenden VBA-Code testen:
Code:
Function ZählenWennFarbe(Bereich As Range, _
SuchFarbe As Variant, _
Optional bolFont As Boolean = False) As Double
'Idee von Melanie Breden, © t.ramel@mvps.org / 13.10.2004 / 11.12.2004
'Funktion zur Anwendung von ZÄHLENWENN mit Hintergrundfarbe
'oder Schriftfarbe als Kriterium
'
'Die Parametereingabe erfolgt in derselben Reihenfolge wie in der Funktion
'ZÄHLENWENN():
' - Der erste Parameter erwartet den Suchbereich
' - Der zweite Parameter erwartet einen Zellbezug (Hintergrund/Schriftfarbe)
' oder Farbindex (Zahl)
' - Der dritte Parameter erwartet Wahr/Falsch für die Festlegung
' ob nach Hintergrund- oder Schriftfarbe gezählt werden soll
'
' Bsp =ZählenWennFarbe(A1:A10;A1;0) Hintergrundfarbe
' =ZählenWennFarbe(A1:A10;A1;0) Schriftfarbe
'Zur automatischen Aktualisierung im Tabellenblatt den folgenden Term
'anhängen: +(0*JETZT()) und F9 drücken
'Also z.B. wie folgt: =ZählenWennFarbe(A1:A10;A1)+(0*JETZT())
Dim intColor As Integer
Dim rngCell As Range
If bolFont Then
If IsObject(SuchFarbe) Then
intColor = SuchFarbe(1).Font.ColorIndex
Else
intColor = SuchFarbe
End If
For Each rngCell In Bereich
If rngCell.Font.ColorIndex = intColor Then
ZählenWennFarbe = ZählenWennFarbe + 1
End If
Next
Else
If IsObject(SuchFarbe) Then
intColor = SuchFarbe(1).Interior.ColorIndex
Else
intColor = SuchFarbe
End If
For Each rngCell In Bereich
If rngCell.Interior.ColorIndex = intColor Then
ZählenWennFarbe = ZählenWennFarbe + 1
End If
Next
End If
End Function
Der Code gehört in ein allgemeines Modul der Datei.
- Öffne mit Alt+F11 den VBA-Editor
- mit Strg+R den Projekt-Explorer öffnen und aktivieren
- die gewünschte Datei per Doppelklick markieren
- Tastenkombination Alt+E und dann M drücken
- in der rechten Fensterhälfte ist jetzt ein leeres Modul eingefügt worden
- in dieses Modul muss der Code eingefügt werden
- im Projektexplorer wird das Modul unter der Datei angezeigt
- speichen und den VBA-Editor mit Alt+F4 schliessen
- die Funktion steht dir jetzt in dieser Datei zur Verfügung
Erläuterungen über die Funktionsweise und den Aufruf des Codes stehen ganz am Anfang - das sind die Zeilen die mit einem Hochkomma beginnen.
Ein kleines Beispiel:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A |
1 | 4 |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Zelle | Formel |
A1 | =ZählenwennFarbe(A2:A11;A2) |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Unabhänig davon sind Berechnungen in Excel aufgrund von Farben etc. keine so gute Idee da XL das von Haus auch nicht kann und hier Klimmzüge notwendig sind.
Vielen Dank klappt Bestens.
Bernd
Schönes WE.