05.04.2018, 20:45 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2018, 20:46 von gerri_o.)
Hallo zusammen
Kann mir jemand die Formel nennen, welche ich bei "D4" einsetzen muss, damit er mir das Total der Kopien von "Olaf" der "dunkelblau" ist für Montag aus "D11 : D19") zusammenzählt? Wichtig: Die Farben-Codes soll er aus der Spalte 2 herauslesen und dürfen nicht in der Formel eingebunden sein.
es hätte schon geholfen, wenn du anstelle der PDF-Datei die Exceldatei eingestellt hättest. Ganz abgesehen davon, dass man keine Auswertungen nach Zellformaten machen sollte.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
06.04.2018, 08:35 (Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2018, 08:35 von chris-ka.)
Hi,
Obwohl ich da was geschrieben habe.... selber verwende ich das nicht! :) Nach Farben etwas auszuwerten ist nicht empfehlenswert, da die mögliche Fehlerquelle sehr hoch ist!
Option Explicit Public Function sumFarb(ParamArray rng()) As Double
'################################### 'by Kaiser 01/2008 'im Tabellenblatt kann =sumfarb(B1:B25;E1;E2;E3;1) 'der erste Bereich ist der Summenbereich und die Zellen dahinter, 'sollten die Zellen beinhalten die eine Hintergrundfarbe aufweisen 'falls auch die Schriftfarbe berücksichtigt werden sollte 'geben sie als letzten Parameter 1 ein 'soll nur die Schriftfarbe genommen werden -> geben Sie als Parameter 0 ein 'wird kein Paramter eingegeben wird nur die Hintergrundfarbe genommen '################################### Dim i, sum_rng As Range, color_() As Integer, cell_ As Range, red_ As Byte Dim par_value As Integer Application.Volatile Dim font_color() Set sum_rng = rng(0) If TypeName(rng(UBound(rng()))) = "Double" Then red_ = 1 par_value = rng(UBound(rng())) End If ReDim color_(UBound(rng()) - red_) ReDim font_color(UBound(rng()) - red_) For i = 1 To UBound(rng()) - red_ color_(i - 1) = rng(i).Interior.ColorIndex font_color(i - 1) = rng(i).Font.ColorIndex Next For Each cell_ In sum_rng For i = 0 To UBound(rng()) - red_ - 1 If red_ = 1 And par_value = 1 Then If cell_.Interior.ColorIndex = color_(i) _ And cell_.Font.ColorIndex = font_color(i) Then sumFarb = sumFarb + cell_.Value End If ElseIf red_ = 1 And par_value = 0 And _ cell_.Font.ColorIndex = font_color(i) Then sumFarb = sumFarb + cell_.Value ElseIf red_ = 0 And cell_.Interior.ColorIndex = color_(i) Then sumFarb = sumFarb + cell_.Value End If Next Next End Function
Zitat:Warum sollte man keine Auswertung nach Zellformaten machen?
weil Zellformate keine verlässliche Grundlage sind. Wenn du, wie du es ja geplant hast, nach Zellfarben auswertest, mag das auf deinen Rechner prima funktionieren. Angenommen du gibst jetzt die Datei weiter, der Nutzer arbeitet mit anderen Standardfarben als du, schon kann es aus dem Ruder laufen.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Obwohl ich da was geschrieben habe.... selber verwende ich das nicht! :) Nach Farben etwas auszuwerten ist nicht empfehlenswert, da die mögliche Fehlerquelle sehr hoch ist!
Hallo Chris
Vielen Dank für die erstellte Tabelle. Sieht im ersten Moment gut aus, jedoch hat es z.b. bei Mittwoch bei Olaf-dunkelblau (4 anstelle 71) und Karl-grün (soll 67 anstelle 71) einen klaren Rechnungsfehler. Was ist da wohl los?
Die Tabelle ist nur für mich als einzigen Anwender gedacht. Dass die Bedienung in diesem Fall nicht willkürlich von vielen erfolgen sollte, ist mir bewusst.