Zählen wenn Hintergrund farbig

Hallo Excelperten,

ich habe mir eine FUnktion gebaut, die leider nicht so funktioniert wie ich es mir erhofft habe.

Folgendes möchte ich erreichen:

In einer Tabelle möchte ich alle Zellen, die einen farbigen Hintergrund haben in einem Bereich zählen.
Hierfür habe ich folgende Funktion gebaut:

Function colorcount(rRange As Range)

Dim rCell As Range
Dim vResult

For Each rCell In rRange

If rCell.Interior.ColorIndex <> xlNone Then

    vResult = 1 + vResult

End If

Next rCell

ColorFunction = vResult

End Function

Leider bekomme ich immer den Wert „0“ zurückgemeldet, auch wenn definitiv Zellen im Bereich sind, die Füllfarben enthalten.

Habe ich hier einen Denkfehler?

Schonmal Vorab vielen Dank

LG
René

Oh mein Gott!

Ja, nämlich dass Farben in einer Tabellenkalkulation irgendwelche Informationen transportieren.

Und nachdem du meine Antworten beim letzten Mal so wehement wegignoriert hast, habe ich nur wenig Lust, dir bei deinem neuerlichen Gefrickel zu helfen.

Zur Erinnerung:

Daher meine Hilfe: Lass das bleiben mit den Farben. Information, die man nicht verlustfrei in CSV exportieren kann, ist sinnlos.

Hi Flowerwomen,
ich habe Deine Antworten nicht wegignoriert - wenn Du Dir den Post und Deine Antworten mal genau anguckst hast Du genau die gleichen Tipfehler geschrieben die auch ich hatte - demnach waren Deine Posts sicherlich ein Anstoß aber alles andere als So allwissend wie Du es versuchst hinzustellen.

Des Weiteren ist es definitiv nicht für die Community förderlich, wenn Du meinst Dich über alles und jedenlustigmachen zu müssen.

Wenn Du nichts konstruktives zu einem Post beitragen kannst, schreib am Besten nichts.

Denn Sinn oder Unsinn einer Frage kannst Du aus Deiner Position und mit dem minimalen Wissen der Hintergründe nicht abschätzen.

In diesem SInne

Danke

Als kurzinfo:

Ich bekomme eine Exportdatei aus einem Drittprogramm, wo aus diversen Gründen die Zellen eingefärbt sind. Dies hat hier eine zentrale Bedeutung und dieser Färbungen haben einen INformationsgehalt. DIesen nun händich auseinander zu nehmen ist um einiges umfangreicher als der Versuch über eine FUnktion das ganze zu lösen.

Was bitte hatte ich?

Ich habe was nicht? Ich habe gesagt, dass der Ansatz nichts taugt. Was anderes werde ich dir nicht liefern.

1 Like

Und anstatt da eine vernünftige Exportschnittstelle zu definieren, musst du Manntag um Manntag damit verplempern, deine Applikation Tabellenkalkulation nachzuführen.

Du versuchst hier ein totes Pferd zu reiten. Ein totes Pferd reitet aber nicht schneller, wenn man es mehr füttert oder es stärker tritt.

Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab.

1 Like

Da sind wir wieder bei dem Problem: Ich möchte MIR den Arbeitsalltag etwas erleichtern, da ich eben KEINEN EInfluss auf zBsp Schnittstelle ect. habe.

Und so tot scheint das Pferd nicht zu sein, denn man kann theoretisch die Hintergrundfarbe einer Zelle auslesen, also müsste theoretisch auch das Zählen dieser Zellen möglich sein.

Weiß dein Chef, dass du wegen dieser komischen Schnittstelle in einem kostenlosen Onlineforum nachfragen musst, um deinen Arbeitsalltag zu erleichtern?

Und wenn dein Chef das hinnimmt, dass du deine Arbeit mit völlig untauglichen Methoden machen musst, dann solltest du dir vielleicht das hier mal ansehen:

1 Like

Ja er weiß es und nimmt es hin.

Und nun zu meinem eigentlichen Problem:

Die Funktion müsste theoretisch laufen.

Jeder Zelle im angegebenen Bereich wird auf Hintergrundfarbe geprüft und wenn nicht keine Farbe (also ungleich xlNone) soll die Variable vResult um eins hochgezählt werden.

Wo ist denn da der Haken?

Ich habe es sogar schon mit „…colorindex = 2…“ versucht und kriege auch immer eine „0“ zurück gemeldet

Hallo,
in Excel ist die Hintergrundfarbe das Ergebnis einer Funktion.
Beispiel wenn groesser als 9 dann gruen.
.
Willst Du eine gruen markierte Zelle finden, dann mit der Abfrage
ist der Inhalt groesser 9
und nicht fragen ist der Inhalt gruen
.
Mal so als Denkansatz.
Gruss Helmut

Da du deinen Quelltext wieder nicht ganz zeigst, geht jetzt die Raterei los.

Mach dir doch mal ne MsgBox mit dem colorindex der aktuellen Zelle. Dann siehst du, ob deine Prüfung überhaupt funktionieren kann.

Und wenn die Prüfung gehen müsste, dann machst du dir ne MsgBox innerhalb des If um zu sehen, ob die Prüfung wirklich nicht geht oder ob du vielleicht eine Variable nicht initialisierst oder irgendwo zurücksetzt.

Halt das normale Debugging, was man so macht mit den bescheidenen Möglichkeiten, die du im VBA so hast.

1 Like

Echt? Ich habe die immer markiert und eingefärbt.
Natürlich nicht, um was damit zu berechnen, sondern um etwas hervor zu heben.

Aber hier will er ja nicht einfärben und kennt auch nicht die Funktion, die die Farbe hervor gerufen hat. Hier hat er ja eine fertig formatierte Tabelle, da kann er nicht mehr auf die Ursache der Einfärbung zurückgreifen.

Sagt er.

Wozu man sowas seltsames macht weiß ich aber nicht. Man macht doch keine Buchungsliste, in der die Farbe einer Zahl angibt, ob das Ding verkauft oder eingekauft wurde.

1 Like

Excel macht es einem da auch echt zu leicht. Man kann sogar nach Zellenfarben filtern. Sowas verleitet dann natürlich dazu. Das größte Problem ist, dass sowas nur noch in Excel (und keiner anderne Software) und zumeist auch nur noch für einen extrem eingeschränkten Mitarbeiterkreis funktioniert.

Alle außenstehenden Mitarbeiter haben dann keine Ahnung davon, was eine gelbe Zelle wohl bedeuten mag. Aber wer bin ich, so einen professionellen Prozess zu hinterfragen?

1 Like

Um welche Excel-Version handelt es sich beim Lieferanten und bei Dir?

Hallo René

Vor lauter power-Beiträgen sieht man gar nicht, ob Dein Problem gelöst ist oder nicht.

In Deiner vollständig gezeigten Function ist die letzte Zeile falsch: Du schreibst „ColorFunction = vResult“. Es muss aber heissen: „colorcount = vResult“. So funktioniert es in meinem Excel 2013.

Dazu kommt noch folgendes: ColorIndex kennt, soviel ich weiss nur 56 Farben! Wenn Deine Exportdatei ganz andere Farben verwendet, als ColorIndex kennt, dann müsste man es mit Color oder mit RGB-Werten versuchen.

Und noch etwas: Von Powerwomen und von nurkucken will ich ausdrücklich keinen Kommentar zu meinem Beitrag. Ich weiss selber, dass ich nichts kann und weiss.

Niclaus

Das ist Majestätsbeleidigung… :wink:

1 Like

Ist das wahr? Und warum kriege ich dann laufend Herzchen von dir?

Schade, wenn das deine Zusammenfassung unserer letzten fachlichen Diskussion ist. Ich bin halt der Meinung, dass es dem Frager langfristig nichts nutzt, wenn man für ihn seine Fehler findet. Er muss einfach lernen, mit den ihm verfügbaren Mitteln seine Fehler selbst zu finden. Und es ist ja nun nicht das erste Mal, dass er Tippfehler in seinen Codes hat. Nur wenn er seine eigenen Fehler erkennt und sich dabei an den Kopf gehauen hat, nur dann hat er ne Chance, aus diesen Fehlern zu lernen.

Du magst das anders sehen und auch noch in 5 Jahren VBA-Fragen von den immer gleichen Usern beantworten wollen. Mein Anspruch ist da ein anderer. Oder wirst du auch von dem besagten Chef für deine Antworten hier bezahlt?

2 Like

Nein. Es war einfach die Unwahrheit. Ich muss mir hier laufend anhören, ich würde Halbwahrheiten verbreiten, nur weil ich halt eine Meinung habe und nicht jedem nach dem Mund rede. Da kann ich es mir nicht leisten, solche falschen Behauptungen unkommentiert stehenzulassen.

1 Like

Und warum kriege ich dann laufend Herzchen von dir?

Wer hat denn in diesem Beitrag Herzchen verteilt? Nurkuchen an Dich und Du an Nurkuchen. Und das wohl, weil Du so richtig süchtig bist danach. Das hast Du ja selber einige Male geschrieben.

und auch noch in 5 Jahren VBA-Fragen … beantworten

Ja! Und hoffentlich ist dann die Flower Power endlich abgeflaut. Nimm es doch endlich hin, dass nicht alle so denken, wie Du.

Den meine ich ja gar nicht. Ich meine unser letztes Zusammentreffen. Aber das weißt du selbst und willst nur noch nicht von der Bühne.

Ich nehm das durchaus hin. Aber deswegen muss ich ja nicht zu jedem Quatsch Ja und Amen sagen. Du bist hier übrigens der Einzige, der laufend auf persönlicher Ebene stänkert. Ist dir das aufgefallen?

1 Like