Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Summe und Zählen wenn Schriftfarbe

Summe und Zählen wenn Schriftfarbe
Barbara
Hallo,
ich habe eine spalte mit unterschiedlich gefärbten zahen. Die funktionen sollen alle zahlen der schriftfarbe schwarz summieren bzw. zählen.
Habe mir die vorlage "summieren von werten mit gleicher schriftfarbe" kopiert. leider gibt die funktion immer ne 0 zurück obwohl bei der formeleingabe der richtige wert steht - ?
Dann ist noch die frage wie zähle ich die zellen mit schwarzer schrift? hab versucht die funktion zu bearbeiten scheitere aber an meinen lächerlichen VBA kenntnissen.
weiß jemand rat?
bg
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Summe und Zählen wenn Schriftfarbe
Luschi
Hallo Barbara,
wahrscheinlich hast Du für die Schriftfarbe schwarz den Wert 0 (null) verwendet, versuch es mal mit dem Wert -4105.
Hintergrund: Wenn in der Zelle keine Schriftfarbe gesetzt ist, dann nimmt Excel den Formatierungswert für die Schriftfarbe 'Automatisch' und das entspricht in Vba eben diesen negativen Wert -4105.
Ansonten poste hoch mal die Vba-Routine.
Ein gutes Beispiel von Tino findest Du hier:
https://www.herber.de/forum/archiv/1072to1076/t1073503.htm#1073503
Allerdings mit einer kleinen Änderung:

Function SumColor(Bereich As Range, iIndex As Integer) As Long
Application.Volatile
For Each Bereich In Bereich
If Bereich.Font.ColorIndex = iIndex And IsNumeric(Bereich)  _
Then
SumColor = SumColor + Bereich
End If
Next Bereich
End Function
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Summe und Zählen wenn Schriftfarbe
08.12.2011 16:15:01
Barbara
Hallo,
danke für das beispiel, habe es gleich mal ausprobiert und es ist das gleiche spiel. denke durch die bedingte formatierung stimmt der farbwert nicht. habe es an einer bsp reihe ausprobiert mit meiner bisherigen und der neuen funktion und dort ging es ohne probleme (für schwarz mit wert 1 und 4105 und -4105) nur sobald ich es bedingt formatieren lasse funktioniert es nicht mehr. gibt es eine möglichkeit sich den schriftfarbenwert der zelle ausgeben zu lassen?
beste grüße
Anzeige
AW: Summe und Zählen wenn Schriftfarbe
Luschi
Hallo Barbara,
schau Dir mal diese I-Net-Seite an: http://www.cpearson.com/excel/CFColors.htm
Damit scheint es zu funktionieren .
=ColorIndexOfCF(Zelle, True) ermittelt die aktuelle Vordergrundfarbe der übergeben en Zelle.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Summe und Zählen wenn Schriftfarbe
14.12.2011 07:47:47
Barbara
Hallo,
habe auch das versucht, nur leider bringt er mir immer einen vba-fehler. habe die datei mal hochgeladen.
https://www.herber.de/bbs/user/77971.xls
Habe langsam die vermutung das mein umweg mit der bedingten formatierung doch schwerer zu lösen ist als das grundanliegen. die bedingte formatierung habe ich quasi nur als hilfe(spalte) genommen. Ist es denn doch einfacher eine schleife zu schreiben in der er mir über die zelle mit den "xx" die tage zwischen den beiden "xx" angibt. kann das halt leider nicht als schleife schreiben, dafür reichen meine vba-kenntnisse nicht.
bg Barbara
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Summe und Zählen nach Schriftfarbe in Excel


Schritt-für-Schritt-Anleitung

Um in Excel die Summe oder die Anzahl von Zellen basierend auf der Schriftfarbe zu berechnen, kannst du eine benutzerdefinierte Funktion in VBA erstellen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Kopiere den VBA-Code: Füge den folgenden Code in das Modul ein:

    Function SumColor(Bereich As Range, iIndex As Integer) As Long
       Application.Volatile
       For Each Bereich In Bereich
           If Bereich.Font.ColorIndex = iIndex And IsNumeric(Bereich) Then
               SumColor = SumColor + Bereich
           End If
       Next Bereich
    End Function
  4. Verwende die Funktion in Excel: Gehe zurück zu deinem Excel-Dokument und verwende die Funktion wie folgt:

    =SumColor(A1:A10, -4105)  ' Für schwarz

    Ersetze A1:A10 mit dem Bereich deiner Zellen.

  5. Zähle die Zellen nach Schriftfarbe: Du kannst auch eine ähnliche Funktion namens CountColor erstellen, um die Anzahl der Zellen mit einer bestimmten Schriftfarbe zu zählen.


Häufige Fehler und Lösungen

  • Fehler: Funktion gibt 0 zurück

    • Lösung: Stelle sicher, dass du den richtigen ColorIndex verwendest. Für die Schriftfarbe schwarz ist der Wert -4105.
  • Schriftfarbe wird durch bedingte Formatierung gesetzt

    • Lösung: Bedingte Formatierungen können das Verhalten der Funktionen beeinflussen. In solchen Fällen kannst du versuchen, die Farbe direkt mit einer zusätzlichen Funktion auszulesen.
  • VBA-Fehler beim Ausführen

    • Lösung: Überprüfe den Code auf Syntaxfehler oder stelle sicher, dass alle benötigten Referenzen gesetzt sind.

Alternative Methoden

Wenn du keine VBA-Funktionen nutzen möchtest, kannst du auch die folgenden Methoden ausprobieren:

  • Manuelle Filterung: Nutze die Filteroption von Excel, um die Zellen nach Schriftfarbe zu filtern und summiere oder zähle die sichtbaren Zellen manuell.

  • Bedingte Formatierung als Alternative: Anstelle von Schriftfarbe kannst du die Hintergrundfarbe verwenden, um Zellen zu markieren. Das Zählen und Summieren von Zellen mit einer bestimmten Hintergrundfarbe funktioniert einfacher, da es keine VBA-Programmierung erfordert.


Praktische Beispiele

Hier sind einige Beispiele, die dir helfen können:

  1. Summiere alle Werte mit roter Schriftfarbe:

    =SumColor(A1:A10, 3)  ' 3 steht für rot
  2. Zähle die Zellen mit schwarzer Schriftfarbe:

    Function CountColor(Bereich As Range, iIndex As Integer) As Long
       Application.Volatile
       For Each Bereich In Bereich
           If Bereich.Font.ColorIndex = iIndex Then
               CountColor = CountColor + 1
           End If
       Next Bereich
    End Function
  3. Verwendung der CountColor Funktion:

    =CountColor(B1:B10, -4105)  ' Zählt die Zellen mit schwarzer Schrift

Tipps für Profis

  • Verwende Application.Volatile: Damit wird sichergestellt, dass die Funktion bei jeder Änderung in der Arbeitsmappe aktualisiert wird.

  • Testen von Schriftfarben: Du kannst die Schriftfarbe einer Zelle leicht testen, indem du die ColorIndex-Eigenschaft direkt in einer Zelle anzeigst.

  • Fehlerbehebung: Wenn du Probleme mit der Funktion hast, teste sie in einer neuen, leeren Arbeitsmappe, um sicherzustellen, dass keine anderen Formatierungen oder Makros das Ergebnis beeinflussen.


FAQ: Häufige Fragen

1. Wie kann ich die Schriftfarbe in einer Zelle abfragen?
Du kannst die Font.ColorIndex-Eigenschaft einer Zelle verwenden, um den Farbcode zu erhalten.

2. Ist es möglich, die Summe nach Hintergrundfarbe zu berechnen?
Ja, dazu musst du eine ähnliche benutzerdefinierte Funktion in VBA erstellen, die die Interior.ColorIndex-Eigenschaft verwendet.

3. Funktioniert dies in jeder Excel-Version?
Die meisten VBA-Funktionen funktionieren in Excel 2007 und neuer. Stelle sicher, dass Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige