farbige Zellen
Hallo alle,
in einer Spalte mit Datumseinträgen möchte ich die mit einer bestimmten Farbe hinterlegten summieren.
Wie geht das?
Gruss Jasper
Antwort schreiben
Antwort 2 von jasper111 vom 13.06.2019, 19:03 Options
Hallo Hajo,
danke, aber wie bau ich das in meiner Tabelle ein???
Gruss Jasper
Antwort 3 von Hajo_Zi vom 13.06.2019, 19:06 Options
Hallo Jasper,
dass entsprechende Modul in Deine Datei kopieren und die entsprechende Formel in die Zelle.
Gruß Hajo
Antwort 4 von jasper111 vom 13.06.2019, 19:44 Options
Sorry Hajo,
aber es klappt nicht.
Als Modul einfügen?
Gruss Jasper
Antwort 5 von Hajo_Zi vom 13.06.2019, 19:57 Options
Hallo Jasper,
bei mir war es als Modul warum sollte es bei Dir als was anderes eingefügt werden?
Ich lehne es ab über das Internet auf fremde Rechner zu schauen. Aus diesem Grunde kann ich nicht schreiben wo dr Fehler bei Dir liegt.
Gruß Hajo
Antwort 6 von coros vom 13.06.2019, 20:08 Options
HAllo Hajo,
sorry, sei mir nicht böse, aber warum kannst Du jasper nicht erklären, wie er das Modul in seine Datei bekommt. Du beschwerst Dich immer bei anderen Usern, dass Ihre Fragestellung wenig und mangelhaft sind, gehst aber nicht mit gutem Beispiel voran. Sorry, aber das verstehe ich nicht.
@jasper, schau mal auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von jasper111 vom 13.06.2019, 20:12 Options
Hallo Hajo,
auch folgendes funktioniert nicht bei mir, als Ergebnis erhalte ich immer 0.
Öffnen Sie die Arbeitsmappe, in der Sie die farbig gekennzeichneten Zellen summieren wollen.
Drücken Sie Alt+F11, um in den Visual Basic-Editor zu wechseln.
Wählen Sie im Menü Einfügen den Befehl Modul an.
Geben Sie die benutzerdefinierte Funktion in das daraufhin angezeigte Codefenster ein:
Public Function SUMMEWENNFARBE _
(Summenbereich As Range, _
Farbzelle As Range) _
As Double
Dim rZelle As Range
Dim vFarbwert
Dim dblErgebnis As Double
vFarbwert = Farbzelle.Interior.Color
For Each rZelle In Summenbereich.Cells
If IsNumeric(rZelle.Value) And _
rZelle.Interior.Color = vFarbwert Then
dblErgebnis = dblErgebnis + rZelle.Value
End If
Next rZelle
SUMMEWENNFARBE = dblErgebnis
End Function
Verlassen Sie den Visual Basic-Editor, indem Sie Datei-Schließen und zurück zu Microsoft Excel aufrufen.
Damit steht Ihnen in der aktuellen Arbeitsmappe eine neue, benutzerdefinierte Funktion namens SUMMEWENNFARBE zur Verfügung. Die Funktion erwartet zwei Parameter:
den Zellbereich, in dem Sie die farbig markierten Zellen suchen und addieren wollen
einen Zellbezug auf eine Zelle mit der gewünschten Füllfarbe
Angenommen, Sie hätten die Tabellendaten im Bereich A1:E25 eingegeben und wollten nun alle Zellen addieren, die gelb markiert sind. Eine derart markierte Zelle ist zum Beispiel Zelle E10. Dann können Sie in eine leere Zelle folgende Formel eingeben:
=SUMMEWENNFARBE(A1:E25;E10)
Gruss Jasper
Antwort 8 von Hajo_Zi vom 13.06.2019, 20:25 Options
Hallo Jasper,
Ist die Farbe vielleicht durch bedingte Formatierung erzeugt.
Gruß Hajo
Antwort 9 von nighty vom 13.06.2019, 20:35 Options
hi all :-)
noch ein beispiel :-)
mit seperaten code fuer farbindex anzeige
gruss nighty
ein zufuegen
alt+f11/projektexplorer/allgemeines modul
neue formel
=SumInteriorColor(bereich;farbindex)
=SumInteriorColor(A1:A3;3)
Function SumInteriorColor(Zellen As Range, farbe As Long) As Double
Application.Volatile
Dim Zelle As Range
For Each Zelle In Zellen
If Zelle.Interior.ColorIndex = farbe Then
SumInteriorColor = SumInteriorColor + Zelle.Value
End If
Next
End Function
farbindex ermittlung bzw anzeige
Sub makro01()
For FarbNummer = 1 To 55
Range("D" & FarbNummer).Interior.ColorIndex = FarbNummer
Range("E" & FarbNummer) = "FarbNr. " & FarbNummer
Next FarbNummer
End Sub
Antwort 10 von nighty vom 13.06.2019, 20:48 Options
hi all :-)
fuer die bedingte form :-))
funktioniert fast immer :-)
gruss nighty
ein zufuegen
alt+f11/projektexplorer/allgemeines modul
nach dem ist die function unter einfuegen/function/benutzerdefiniert/BedingungAdd verfuegbar
neue formel
=BedingungAdd(bereich;farbindex)
=BedingungAdd(A1:A3;3)
Function BedingungAdd(Zellen As Range, farbe As Integer) As Double
Dim Zelle As Range
Dim farben As Integer
Application.Volatile
For Each Zelle In Zellen
farben = GetCellColor(Zelle)
If farben = farbe Then
BedingungAdd = BedingungAdd + Zelle.Value
End If
Next
End Function
Function GetCellColor(cell As Range) As Integer
Dim i
Dim myVal
Dim myColor As Integer
Dim done As Boolean
On Error Resume Next
Names("testname").Delete
On Error GoTo 0
Application.ReferenceStyle = xlR1C1
myVal = cell.Value
myColor = cell.Interior.ColorIndex
done = False
For i = 1 To cell.FormatConditions.Count
With cell.FormatConditions.Item(i)
If .Type = 1 Then
Select Case .Operator
Case xlBetween
If (myVal >= Evaluate(.Formula1) And myVal <= Evaluate(.Formula2)) _
Or (myVal <= Evaluate(.Formula1) And myVal >= Evaluate(.Formula2)) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlEqual
If myVal = Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreater
If myVal > Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreaterEqual
If myVal >= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLess
If myVal < Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLessEqual
If myVal <= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotBetween
If myVal < Evaluate(.Formula1) Or myVal > Evaluate(.Formula2) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotEqual
If myVal <> Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
End Select
ElseIf .Type = 2 Then
Names.Add Name:="testname", RefersToR1C1Local:=.Formula1
If Evaluate("testname") Then
myColor = .Interior.ColorIndex
done = True
End If
Names("testname").Delete
Else
MsgBox "Unbekannter Typ: " & .Type, , "PANIC: In Function GetCellColor"
Exit Function
End If
End With
If done Then Exit For
Next
Application.ReferenceStyle = xlA1
GetCellColor = myColor
End Function
Antwort 11 von Jasper111 vom 13.06.2019, 21:18 Options
Hallo alle,
coros, bei dir hatte ich schon vorher geschaut, 3 und 20
Hajo, die Spalte ist mit Datumsangaben gefüllt, Farbgebung manuell
Nighty, bei dir erscheint ein Syntaxfehler, deinen 2. Beitrag versuche ich morgen
bedanke mich bei euch, vermutlich liegt der Fehler in meiner ungenauen Fragestellung: ich möchte die Anzahl der farbig hinterlegten Zellen wissen, nicht die Summe der Inhalte
Gruss Jasper
Antwort 12 von Hajo_Zi vom 14.06.2019, 06:32 Options
Hallo Jasper,
das wäre bei mir das Modul Anzahl_einer_Farbe
Gruß Hajo
Antwort 13 von jasper111 vom 14.06.2019, 11:49 Options
Danke an alle, nun hat es geklappt.
Gruss Jasper