Excel vba: Farbsumme aus gefilteter Liste
#1
Hallo zusammen,

ich hätte mal eine Frage zum Farbsummen-Thema.
Beispiele gibt es ja genügend wo Werte einer Zelle (in Spalte "A") mit bestimmten Zellfarben (z.B. gelb "6") aufsummiert werden können - so weit so gut.
Einen Filter auf eine Nachbarspalte gesetzt, zeigt mir nun alle Werte in der "Farbspalte" ("A") die dem Filterkriterium der Spalte "B" entsprechen.
Es gibt jetzt aber noch weitere "gelbe" Zellen in Spalte "A" die durch den Filter ausgeblendet worden sind.

Das Problem ist, dass die Farbsumme aber auch diese nicht sichtbaren Werte aufaddiert - und das sollte nicht sein - ich benötige nur die Summe der sichtbaren Werte der farbigen Zellen.

Hat dazu jemand eine Idee wie man das umsetzen könnte?

Hier mal ein kleines Code-Beispiel:
Code:
Function FarbsummeTest(Bereich As Range)
  Application.Volatile
  FarbsummeTest = 0
  For Each Zelle In Bereich
     If Zelle.Font.ColorIndex = 6 Then
        FarbsummeTest = FarbsummeTest + Zelle.Value
     End If
  Next
End Function
Antworten Top
#2
Hi

Versuch es mal mit der Zeile.
Code:
For Each Zelle In Bereich.SpecialCells(xlCellTypeVisible)

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • sharky51
Antworten Top
#3
Hallo Elex,

danke für die Rückmeldung, aber das bringt leider auch nicht das gewünschte Ergebnis.
Es werden immer noch alle Zellen addiert.
Antworten Top
#4
Hi

dann schlage ich eine Beispieldatei vor.

Gruß Elex
Antworten Top
#5
Hallo,

@sharky51: eine Summe basierend auf einer Zellfarbe zu ermitteln, ist grundsätzlich keine so gute Idee. Die Farbe
bräuchte nur leicht abweichen und schon funktioniert's nicht mehr. Gelb ist nicht gelb - je nachdem wo es herkommt.

Dein Code summiert die Farbe der Schrift, nicht des Hintergrunds (wie es soll, so wie ich das verstanden habe).
Versuche mal den Code hier...

Code:
Function FarbsummeTest(Bereich As Range)
  Application.Volatile
  FarbsummeTest = 0
  For Each Zelle In Bereich
     If Zelle.Interior.ColorIndex = 6 And Not _
        Zelle.EntireRow.Hidden Then
        FarbsummeTest = FarbsummeTest + Zelle.Value
     End If
  Next
End Function

Dennoch, wie gesagt, vermeide das Summieren über eine Farbe.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
[-] Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:
  • sharky51
Antworten Top
#6
Hallo und guten Morgen,

erst mal vielen Dank für die Rückmeldung - funktioniert prima das Teilchen.

War ein Versehen mit der Schriftfarbe - es handelt sich natürlich um die Zellenfarbe.
Dass es mit dem Farbcode ev. problematisch sein kann ist mir bewusst - aber gibt es eine andere/bessere Lösung um Inhalte von verschiedenfarbigen Zellen zu addieren?

Was mir gerade so einfällt wäre abzufragen welches Filterkriterium in der gefilterten Spalte in einer Zelle steht - um dann alle zugehörigen Werte zu summieren.
Klingt umständlich!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste