Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

wenn schriftfarbe rot dann zählen

wenn schriftfarbe rot dann zählen
Lars
Hi habe eine Frage,
ich habe mir eine kleine Funktion geschrieben mit der ich alle roten ampeln zählen möchte, bekomme aber irgendwie immer die Fehlermeldung "Name" vielleicht kann sich jemand mal die Datei anschauen und mir kurzes Feedback geben wo ich den Denkfehler habe.
DANKE Sehr
https://www.herber.de/bbs/user/77316.xls
Lars

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn schriftfarbe rot dann zählen
02.11.2011 12:01:30
Dieter(Drummer)
Hi Lars,
einmal fällt mir auf, dass deine Funktion in Zelle "Function FarbeZaehlen(Bereich, Farbe)" schon nicht erkannt wird. Dies erkennst Du in der Zelle F4 der Tabelle mit "#Name?". Wäre die Function ok in VBA, dann würde auch der Funtionsname so dort stehen "FarbeZaehlen" und nicht "Farbezaehlen".
Ich bin in VBA nicht FIT aber die Farbe, die Du als Anzahl haben möchtest, muss wohl auch im Functionscode vorhanden sein, wenn ich nicht irre ...
Hier müssen Spezialisten/innen ran.
Gruß
Dieter(Drummer)
Leider irrst du da wahrscheinlich, ...
02.11.2011 14:22:39
Luc:-?
…Dieter,
denn Xl passt zwar das Schriftbild der StddFktt an, nicht aber unbedingt auch das der udFktt → das macht wohl nur der VBE.
Den wahren Grund hat NoNet genannt - Dok-Klassenmodul!
Gruß Luc :-?
Anzeige
AW: Leider irrst du da wahrscheinlich, ...
02.11.2011 14:47:47
Dieter(Drummer)
Hi Luc:-?,
Danke für Info. Das ist alles zu hoch für mich ...
Gruß
Dieter(Drummer)
Mehrere Fehlerquellen im Beispiel
02.11.2011 12:04:21
NoNet
Hallo Lars,
das Beispiel enthält mehrere Fehler(quellen) :
  • Platziere den Code besser in einem Modul im VBA-Editor (z.B. "Modul1") anstatt im Klassenmodul des Tabellenblattes

  • Deklare den Code evtl. als PUBLIC : Public Function ...()

  • mit der Zuweisung FarbeZaehlen=Farbezaehlen+1 wird das Ergebnis bereits festgelegt, d.h. es kann immer nur 0 oder 1 als Ergebnis resultieren, da die Function mit dieser Wertzuweisung an den Funktionsnamen beendet wird !
    Verwende stattdessen eine temporäre Variable (z.B. tmpVariable) zum Aufaddieren und weise dem Funktionnamen am Ende der Function diesen Wert zu : FarbeZaehlen=tmpVariable

  • Die Farbe der Ampeln werden in Deinem Beispiel per Bedingte Formatierung erzeugt, diese kann man nicht per Font.ColorIndex ermitteln, denn diese eigenschaft gibt nur die Farbe der Schrift der Zelle zurück, nicht aber die Farbe der Bedingten Formatierung !! - Dazu müsste man die Regeln der Bed.format. auswerten und die daraus resultierende Schriftfarbe - das ist nicht ganz einfach. Suche mal nach Beispielen im Forum


Gruß, NoNet
Anzeige
...und der 4.Pkt ist die Crux, ...
02.11.2011 14:41:15
Luc:-?
…Lars,
denn die allgemeine Empfehlung bei nicht-engl Xl ist Nachbauen der farbveränderungsauslösenden Bedingung im Pgm. Man kann das zwar auch durch direkte Auswertung der angegebenen Bedingungen lösen, aber dazu wirst du kaum irgendwo eine vollständige Lösung finden (höchstens wie im Archiv Lösungsbspp), denn hierbei handelt es sich um eine der, na sagen wir mal, Xl:VBA-Top-Problemstellungen, vor allem, wenn das per Zellformel (udFkt) ausgewertet wdn soll. Da ist wirklich 'ne Menge zu beachten und wenn du nicht weißt, wie man eine dtsche Bedingungsfml auswerten kann, kannst du den Zweig Formel ist gleich und Wert ist auch abhaken, wenn darin nicht nur einfache Zuweisungen vorkommen.
Gruß Luc :-?
Anzeige
Aber natürlich geht das auch automatisiert, ...
06.11.2011 17:13:10
Luc:-?
…(verschollener) Lars und wen's noch interessiert.
Zwar habe ich dazu schon vor fast 2 Jahren einiges auf den Server geladen, aber das ist ggf in Vergessenheit geraten bzw kennen es viele gar nicht, wie dröge Diskussionen in den letzten Wochen vermuten lassen. Das hier soll nur noch einmal dokumentieren, dass es sowohl möglich ist, alle (Zell-)Formatierungen, egal welchen Typs, auszulesen und die aktuelle zu bestimmen als auch das ConditionalFormat-Objekt so zu konditionieren, dass es auch vor Xl12 mit wesentl mehr (Teil-)Bedingungen und Formatierungen (natürl im Rahmen der überhpt möglichen) als den 3 vorgegebenen (Hpt-)Bedingungen zurechtkommen kann. Insofern war die immense Ausweitung der BedingtFormatierung unter Xl12ff gar nicht notwendig, zumal Xl/VBA alles zV stellt, was benötigt wird — man muss nur darauf kommen, was man am besten durch eigenes Nachdenken und nicht Abschreiben von Anderen erreicht. Die wissen es meist ja auch nicht besser, wovon sich jeder gern auf einschlägigen WebSites überzeugen kann. Aber wenn jemand dann gg eine richtige Einordnung üblicher Lösungen front macht, weil er/sie den Unterschied zwischen Range- u.ConditionalFormat-Objekt nicht kennt bzw meint, ihn vernachlässigen zu können, ist das weder eine saubere noch gar „wissenschaftliche”, sondern viel eher ψ-wissenschaftliche Herangehensweise.
Zur normalen BedingtFormatierung, → Regular Conditional Formatting, habe ich mit den bereits in Xl/VBA vorhandenen Mitteln 2 Methoden (es sind auch noch mehr vorstellbar) der Erweiterung desselben entwickelt, die ich in der einfacheren Variante Dynamized u.der etwas kompakt-komplexeren Expanded Conditional Formatting nenne. Auf Letzteres bezieht sich das nflgd Bsp. Auf der Basis des Regular Formatting (nämlich direkt des Range-Objekts) bewegen sich demggüber die CFPlus-analogen Angebote auf WebSites u.in Foren, die man wg ihrer VBA-Steuerung auch als Regular Formatting on Conditions bezeichnen kann. Wenn man diese Methode nicht auf die Zelle, sondern ein sie überlagerndes und mit ihr verlinktes Objekt anwendet, erhält man einen Eindruck davon wie das ConditionalFormat-Objekt (CFO) in bezug auf die Zelle fktionieren mag. Deshalb ist das unter der Bezeichnung Extended Formatting on Conditions ebenfalls in der Abb. enthalten…
Userbild
Mit einer EventProc wdn (wie bei den anderen Lösungen auch) die Farbinfos des CFO (nicht des Range-Objekts!) je nach Bedarf ausgetauscht. Wird die HptBedingg in Gänze nicht erfüllt, wird das BedingtFmt auch nicht wirksam. Die eigentl Zellfarbe selbst wird von dem allen nicht berührt — nur die, die zu sehen ist. Wie das im Einzelnen fktioniert, sollten Profis weitgehend schon den Fmln entnehmen können.
Zu den hier in Form von zellfmltauglichen udFktt angewendeten Tools bleibt noch zu sagen, dass sie ein nicht in sich geschlossenes System bilden, sondern Teil eines ganzen Fktssystems sind, das viele Tsd Zeilen Code und Erläuterungstext umfasst, hier also schon deshalb nicht angeboten wdn kann. Außerdem ist bei dem immensen Arbeits- und Innovationsaufwand, der darin steckt, sicher verständlich, dass das dann auch nicht kostenlos wäre.
Gruß Luc :-?
Anzeige
AW: wenn schriftfarbe rot dann zählen
02.11.2011 15:25:42
KlausF
Hallo Lars,
anbei mal eine Mappe aus meiner Sammlung (stammt nicht von mir).
Da kannst Du sehen, wie Farben aus der bedingten Formatierung gezählt werden können.
Gruß
Klaus
https://www.herber.de/bbs/user/77323.xls
Das ist ein Torso, aber nicht universell!
02.11.2011 16:09:54
Luc:-?
Der ursprgl Autor, Bernd, hat auch schon lange nichts mehr dazu geschrieben, obwohl er inzwischen sicher weiß wie's geht.
Luc :-?

14 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige