Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich zählen nach Farbcode

Bereich zählen nach Farbcode
27.04.2009 13:01:33
MathiasW.
Hallo Excel Forum,
könnt ihr mir helfen, im Bereich B6:X38 sind einige Zellen hinterlegt mit diesen 7 Farbcodes
Selection.Interior.ColorIndex = 41
Selection.Interior.ColorIndex = 44
Selection.Interior.ColorIndex = 6
Selection.Interior.ColorIndex = 4
Selection.Interior.ColorIndex = 8
Selection.Interior.ColorIndex = 3
Selection.Interior.ColorIndex = 16
Als Ergebnis hätte ich gern, das jede Zelle die die selbe Hintergrundfarbe hat zusammen gezählt wird und
jeweils in einer Ergebniszelle im Bereich AA4:AA10 die Anzahl der farbigen Zellen steht.
Ist das machbar?
vielen Dank Mathias

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich zählen nach Farbcode
27.04.2009 13:06:05
Rudi
Hallo,

Ist das machbar?


Ja.
10^6x gefragt.
Schau ins Archiv.
Gruß
Rudi

AW: Bereich zählen nach Farbcode
27.04.2009 14:26:49
MathiasW.
Hallo Rudi,
habe einiges gefunden, doch anscheinend nicht verstanden :-(
habe mal folgendes für ROT Versucht

Private Sub CommandButton3_Click()
If Range("B6:X38").Interior.ColorIndex = 3 Then
Range("AA9") = CountColor = CountColor + 1
End If
Next
Next
End Sub


Das Ergebnis sollte in Zelle AA9 stehen, bekomme aber nur eine Fehlermeldung, ist mein
Ansatz grundlegend falsch? od. kann das auch an der bedingten Formatierung liegen?
Gruss Mathias

Anzeige
AW: Bereich zählen nach Farbcode
27.04.2009 14:48:04
MathiasW.
upps vergessen als noch offen zu kennzeichnen :-)
AW: Bereich zählen nach Farbcode
27.04.2009 14:56:36
Rudi
Hallo,

od. kann das auch an der bedingten Formatierung liegen?


die durch bed.Formatierung er zeugten Farben kannst du nur extrem aufwändig zählen.
Einfacher ist es, die Bedingung zu prüfen.
Wenn es sich aber wirklich um die Hintergrundfarbe handelt, z.B. so:


Function AnzFarbe(rng As Range, iIndex As Integer)
Dim rngC As Range
For Each rngC In rng
AnzFarbe = AnzFarbe - (rngC.Interior.ColorIndex = iIndex)
Next
End Function


Gruß
Rudi

Anzeige
AW: Bereich zählen nach Farbcode
27.04.2009 15:16:50
MathiasW.
Hallo Rudi,
vielen Dank für die Hilfe, mit VBA habe ich wirklich kaum Erfahrung, deshalb auch wenn es für dich einfach ist. Wie realisiere ich denn, das das Ergebnis, z.B. für die Farbe ROT in Zelle AA9 angezeigt wird?
Gruss Mathias
AW: Bereich zählen nach Farbcode
27.04.2009 15:22:01
Rudi
Hallo,
1. den Code in ein Modul kopieren
2. in AA9: =AnzFarbe(B6:X38;3)
Gruß
Rudi
AW: Bereich zählen nach Farbcode
27.04.2009 15:24:48
MathiasW.
Hallo Rudi,
um das Problem etwas anschaulicher darzustellen habe ich die Datei mal angehängt.
Nachdem das Problem gelöst ist, wollte ich eigentlich noch eine 2. Frage stellen. Es soll nur erlaubt sein im Bereich B6:X38 Farben zu verwenden, die im Bereich Z4:Z11 vordefiniert sind.
Danke für die Hilfe
Gruss Mathias
https://www.herber.de/bbs/user/61451.xls
Anzeige
AW: Bereich zählen nach Farbcode
27.04.2009 16:15:39
Rudi
Hallo,
dann besser so:

Function AnzTage(rng, rColor)
Dim rngC As Range, iIndex As Integer
iIndex = rColor.Interior.ColorIndex
For Each rngC In rng
AnzTage = AnzTage - (rngC.Interior.ColorIndex = iIndex)
Next
End Function


in AA4: =anztage($B$6:$X$38;Z4)
Achtung! Zellen als Zahl formatieren.
2. Frage: kompliziert, da das Einfärben kein Ereignis auslöst. Evtl. Prüfung vor dem Speichern.
Gruß
Rudi

AW: Bereich zählen nach Farbcode
27.04.2009 17:07:43
MathiasW.
Hallo Rudi,
vielen dank, läuft alles super.
Ist es nicht möglich über einen cmdbutton die Farben zu prüfen?
gruss Mathias
Anzeige
AW: Bereich zählen nach Farbcode
28.04.2009 11:30:19
Rudi
Hallo,

Ist es nicht möglich über einen cmdbutton die Farben zu prüfen?


latürnich.


Private Sub CommandButton4_Click()
Dim rngTest As Range
Set rngTest = CheckColors(Range("Z4:Z11"))
If rngTest Is Nothing Then
MsgBox "Alles klar"
Else
MsgBox "Falsche Farbe in " & rngTest.Address & " verwendet"
End If
End Sub


Function CheckColors(rngColors As Range) As Range
Dim arrColors(), n As Integer, iRow As Integer, iCol As Integer, rngC As Range, i As Integer
ReDim arrColors(1 To rngColors.Count)
For Each rngC In rngColors
n = n + 1
arrColors(n) = rngC.Interior.ColorIndex
Next
For iRow = 6 To 33 Step 9
For i = 0 To 5
For iCol = 2 To 24
Select Case Cells(iRow + i, iCol).Interior.ColorIndex
Case 2, xlNone
Case Else
If IsError(Application.Match(Cells(iRow + i, iCol).Interior.ColorIndex, arrColors, 0)) Then
Set CheckColors = Cells(iRow + i, iCol)
Exit Function
End If
End Select
Next iCol
Next i
Next iRow
Set CheckColors = Nothing
End Function

Gruß
Rudi

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige