Hallo Leute
ich möchte in einem Zellbereich Werte addieren aufgrund der jeweiligen Hintergrundfarben der Zelle...
Gibt's da eine Möglichkeit ??
ich möchte in einem Zellbereich Werte addieren aufgrund der jeweiligen Hintergrundfarben der Zelle...
Gibt's da eine Möglichkeit ??
Wie mache ich das ??
Gruss Rick
wenn Deine Zellhintergrundfarben durch bedingte Formatierungen erzeugt werden, so brauchst Du nicht weiterlesen, dann kann ich Dir leider nicht helfen.
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:
In der Zelle, in der die Summe der Werte mit einer bestimmten Schriftfarbe erscheinen soll, folgende Formel eingeben:
=SumFarbe(A1:A10;3)
"A1:A10" ist der Bereich, in dem die Werte mit einer bestimmten Schriftfarbe 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 Hintergrundfarben 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
- Mache dazu einen Rechtsklick auf den Tabellennamen (Lasche).
- Klicke dann auf "Code anzeigen".
- Automatisch öffnen sich nun der VB-Editor und das Klassenmodul des betreffenden Tabellenblattes.
- Schreibe/kopiere das vorstehende Makro in die große weiße Fläche auf der rechten Seite.
- Zurück zum "normalen" Excel geht's mit Alt + Q.
- Fertig.
Allerdings machen mehrere solcher Konstrukte Excel erheblich langsam, weil es nach jedem Mausklick (wg. "Application.Volatile") alle Blätter aller geöffneten Mappen neu durchrechnet. Diesen Nachteil musst Du leider in Kauf nehmen oder ggf. eben auf das Makro verzichten, wenn es zu lästig ist.
Wenn Du die Zeile "Application.Volatile" aus der Function herausnimmst, so werden weder die F9-Taste noch das kleine Makro eine Aktualisierung auslösen können.
Viel Erfolg wünscht
WernerB.