Herbers Excel-Forum - das Archiv

Zellenhintergrund je nach Zahlenbereich einfärben

Bild

Betrifft: Zellenhintergrund je nach Zahlenbereich einfärben
von: Jörg Jany
Geschrieben am: 08.10.2003 10:54:25
Hallo an alle!

Ich habe eine Funktion geschrieben, die einen Prozentwert (Verhältniswert) je nach den Inhalten des markierten Spalten-Bereichs berechnet.
Momentan habe ich die bedingte Formatierung eingesetzt um den Zellenhintergrund für den Bereich 0 - 0.3 rot zu färben, 0.4 - 0.9 gelb und für den Wert 1 (=100%) grün zu färben.

Nun möchte ich die Auswahl der Hintergrundfarbe statt über die "Bedingte Formatierung" auch in meinem VBA-Script lösen.

Ich würde mich freuen, wenn mir jemand einen Tipp dazugeben könnte,
vielen Dank schomal im voraus

mfg

Jörg

P.S.: Momentan hab ich noch folgenden Befehl mit einer IF-Abfrage ausprobiert: "ActiveCell.Interior.ColorIndex = 2"
Excel liefert mir aber keine Fehlermeldung und färbt den Hintergrund aber auch nicht ein. Wo finde ich im übrigen ein Auflistung der Color-Indizes?

Bild

Betrifft: AW: Zellenhintergrund je nach Zahlenbereich einfärben
von: Hajo_Zi
Geschrieben am: 08.10.2003 10:59:25
Hallo Jörg

schaue mal auf meine Homepage.


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Bild

Betrifft: AW: Zellenhintergrund je nach Zahlenbereich einfärben
von: Jörg Jany
Geschrieben am: 08.10.2003 11:27:54
Leider ist meine Aufgabenstellung etwas anders, als deine Beispiele um den Zellenhintergrund einzufärben.

Das Problem ist, dass sich die Zelle die farblich geändert werden soll ja nicht in dem ausgewählten Bereich befindet... Ich kann deswegen nicht mit der ausgewählten Range auf sie zugreifen.

=> Wenn man eine Funktion in eine Zelle schreibt, muss es doch einen VBA-Befehl geben mit dem ich auf diese Zelle wo die Eingabe der Funktion stattfindet auf sie zugreifen kann.

Macht der Ansatz mit "ActiveCell.Interior.ColorIndex" keinen Sinn?

Danke,

Jörg
Bild

Betrifft: AW: Zellenhintergrund je nach Zahlenbereich einfärben
von: Hajo_Zi
Geschrieben am: 08.10.2003 11:41:08
Hallo Jörg

leider sehe ich den ersten Beitrag nicht mehr.

ActiveCell.Offset(0,1).Interior.ColorIndex



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Bild

Betrifft: Geht leider noch immer nicht!
von: Jörg Jany
Geschrieben am: 08.10.2003 11:58:52
Hallo Hajo,

danke erstmal dass du dich meinem Problem überhaupt annimmst.

Das Problem scheint zu sein, dass meine Funktion mit dem Befehl "ActiveCell..." nichts anfangen kann. Es liegt nämlich weder an der If-Schleife (die hab ich schon zu Testzwecken entfernt).

Wenn ich einfach folgendes "ActiveCell.Interior.ColorIndex = 1" in mein Skript schreibe - also die Zeile muss auf jeden Fall ausgeführt werden, weil keine IF-Abfrage drumrum ist - dann passiert leider gar nichts. Keine Fehlermeldung und auch keine Farbänderung. Es liegt aber auch nicht an der grundsätzlichen Farbe der Zelle - hab schon mehrere ColorIndizes ausprobiert.

Meine Funktion in VBA bekommt als einzigen Übergabewert ein" ParamArray". Das ist der Bereich in welchem die Zelleninhalte überprüft und abgezählt werden, damit ein Verhältniswert berechnet werden kann. Die Zelle wo das Ergebns reingeschrieben wird, ist in dem ParamArray nicht miteingeschlossen.

Muss ich meiner Funktion vielleicht in irgendeiner Art und Weise mitteilen, in welcher Zelle die Funktion aufgerufen wird?

Die Aufgabenstellung (um es deutlicher zu machen) ist folgende (beispielhaft):

-) Rufe in Zelle A2 eine Funktion mit dem Namen "Status" auf.
-) Markiere den Bereich A3:A20
-) Funktion überprüft Inhalte und berechnet einen Prozentwert (z.B. Anzahl Zellen mit Inhalt "Hallo" dividiert durch Anzahl Zellen mit irgendeinem Inhalt)
-) Der Prozentwert soll in die Zelle A2 geschrieben werden
-) Die Hintergrundfarbe von A2 soll bei Werten von 0 - 0.3 rot, zwischen 0.4 und 0.9 gelb und bei 1 grün sein.


Vielen Dank für deine Hilfe - falls du noch Zeit hast.

mfg

Jörg
Bild

Betrifft: AW: Geht leider noch immer nicht!
von: Hajo_Zi
Geschrieben am: 08.10.2003 12:30:40
Hallo Jörg

soweit ich mich erinnere kannst Du in einer Funktion keine Farbänderung an einer Zelle vornehmen. Eine Funktion gibt nur einen Wert Zurück.



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Bild

Betrifft: AW: Geht leider noch immer nicht!
von: Jörg Jany
Geschrieben am: 08.10.2003 12:53:40
Hallo Hajo!

Trotzdem herzlichen Dank für die Unterstützung.
Somit brauch ich nicht unnötig Zeit mit diesem Versuch verbringen.

mfg

Jörg
 Bild