PDA

Vollständige Version anzeigen : Rote Zahlen in einem bestimmten Bereich zählen


bernd_franken
08.07.2014, 22:36
Hallo,

ich bin schon ziemlich frustiert, weil ich 2 Stunden gegoogled habe und ca. 40 Rezepte mit VBA ausprobiert habe, aber bei mir funktioniert nichts.

Ich möchte in einem großen Zahlenbereich (A4:AU115) ermitteln, wieviele die Standard-Textfarbe ROT (Nr. 3) haben. (Es geht also nicht um den Zellhintergrund).

Die Prozeduren geben immer nur Null aus, z.B. diese

Sub test()
Dim c As Range
Dim i As Integer
For Each c In Range("A1:A100")
If c.Interior.Color = vbRed Then
i = i + 1
End If
Next c
MsgBox i
End Sub

Bei den vorgeschlagenen Funktionen, z.B. =ZähleSchriftFarbe(3;A1:A10) kriege ich bloß #Name?

Sind diese ganzen Routinen nur in älteren Excel-Versionen anwendbar?
Ich wäre sehr glücklich über eine bei Version 2010 funktionierende Lösung oder eine Excel-Datei zum Download, wo es klappt.

Mc Santa
08.07.2014, 23:18
Hallo,

versuche es einmal so, beachte jedoch, dass damit keine bedingte Formatierung abgefragt werden kann.
Sub test()
Dim c As Range
Dim i As Integer
For Each c In Range("E1:F7")
If c.Font.Color = vbRed Then
i = i + 1
End If
Next c
MsgBox i
End Sub

Die Funktion ZähleSchriftFarbe, die du gefunden hast, wird eine selbstprogrammierte Funktion sein. Die kannst du nur nutzen, wenn du auch den zugehörigen Code in deine Tabelle kopierst.

Hilft dir das weiter?
VG

bernd_franken
08.07.2014, 23:34
Hallo, Mc Santa

Ganz herzlichen Dank für Deine Lösung! Es hat auf Anhieb perfekt funktioniert, war mir eine große Hilfe.
Das mit der selbstprogrammierten Funktion war mir schon klar. Ich habe auch den VBA-Code hinterlegt und mich genau nach den Anweisungen gerichtet - aber nichts. Vermutlich sind diese Lösungen einfach zu alt.

Eine Problemlösung mit Funktion wäre mir zwar auch sympathisch gewesen, ich hätte dann das Ergebnis in der Tabelle gehabt und nicht nur in der Messagebox. Aber der Hauptzweck ist erreicht.

Viele Grüße von
Bernd_Franken :)

Mc Santa
08.07.2014, 23:38
Hallo,

wenn du als Fehlerwert #Name? erhälst, dann hat Excel die Funktion nicht gefunden. Ob sie prinzipiell funktioniert, kann man dann noch gar nicht sagen.

Als Fehler vermute ich, dass du den Code in die Tabelle kopiert hast. Du musst den Code jedoch in ein Modul (nicht Klassenmodul) kopieren, damit du aus der Tabelle darauf zugreifen kannst.

Hilft dir das weiter?
VG