Hintergrundfarben summieren: möglich?



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Hintergrundfarben summieren: möglich?
von: Fridolin
Geschrieben am: 19.05.2002 - 12:32:22

Hallo Leute

Wieder einmal bin ich auf Hilfe angewiesen:

Ist es möglich Zellhintergründe zu summieren; z.B. alle roten, oder alle gelben, etc.?

Bin für alle Tipps dankbar!

Gruss Fridolin

nach oben   nach unten

Re: Hintergrundfarben summieren: möglich?
von: Hans W. Herber
Geschrieben am: 19.05.2002 - 12:38:01

Hallo Fridolin,

folgender Text:
https://www.herber.de/mailing/175002h.htm

Die Funktion zählt die Vorkommen, deshalb die Zeile:
iCount = iCount + 1

ändern in:
iCount = iCount + rngAct.Value

Falls es sich nicht um Integer-Zahlen handelt, muss iCount anders dimensioniert werden.

hans

nach oben   nach unten

Re: Hintergrundfarben summieren: möglich?
von: WernerB.
Geschrieben am: 19.05.2002 - 12:43:20

Hallo Fridolin,

in Hans W. Herber's Archiv habe ich eine Function gefunden, die ich passend für Dich modifiziert habe.
Diese Function musst Du in einem normalen Standardmodul hinterlegen:


Option Explicit
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

In der Zelle, in der die Summe der Zellen mit einer bestimmten Hintergrundfarbe erscheinen soll, folgende Formel eingeben:
= CountColor(A1:A10;3)

"A1:A10" ist der Bereich, in dem die Zellen mit einer bestimmten Hintergrundfarbe summiert werden sollen; die "3" steht hier für die Farbe Rot.

Nun ist es aber leider so, dass Excel nicht auf Format-Veränderungen reagiert, wenn man nicht ein bisschen nachhilft. Wenn Du also die Anzahl der Zellen mit roter Hintergrundfarbe in dem Bereich veränderst, zeigt Excel in der Ergebniszelle immer noch den alten Wert an.

Alternativ zum Gebrauch der F9-Taste kannst Du auch im Tabellenblatt-Modul den folgenden Code hinterlegen (als Ergebniszelle habe ich "A11" angenommen):

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Range("A11").Calculate
End Sub

Allerdings machen mehrere solcher Konstrukte Excel erheblich langsam, weil es nach jedem Mausklick neu rechnet. Diesen Nachteil musst Du leider in Kauf nehmen.

Noch etwas wichtiges: Die Hintergrundfarben dürfen nicht durch bedingte Formatierung erzeugt werden!

Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Danke!: Hintergrundfarben summieren: möglich?
von: Fridolin
Geschrieben am: 19.05.2002 - 17:10:30

Hallo WernerB und hallo Hans

Dank der Idee und den weiterführenden Erklärungen von Werner hat es nach einigen Übungen geklappt und die Sache funktioniert!

Herzlichen Dank und einen schönen Abend wünsche ich euch!

Fridolin


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Hilfe zu folgendem Makro ....."