Microsoft Excel

Herbers Excel/VBA-Archiv

Ampelfarbe Automatik

Betrifft: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 09:49:44

Hallo,

ich habe hier mal wieder etwas und weiß nicht weiter.
Ich habe eine Ampel, die den Gesamtstatus wiedergibt. Momentan funktioniert diese manuell per Mausklick. Ich hätte da gerne eine Automatik drin.

Ich habe also eine Spalte mit der ich durch Ampelfarben etwas bewerte. Der GEsamtstatus soll immer den schlechtesten Fall darstellen (Rot=n.i.O; Gelb=mittel; Grün=i.O).

Ist die Spalte also grün und eine Zelle rot, dann Ampel gleich rot. Das gleiche mit Rot/gelb und gelb/grün. Wenn alles grün, dann Ampel grün. Ich bekomme diese Abfrage nicht rein.

In der Beispielliste mal die momentane manuelle Version.

https://www.herber.de/bbs/user/93152.xlsm

Vielleicht kann mir ja jemand helfen.

Grüße,
Björn

  

Betrifft: AW: Ampelfarbe Automatik von: yummi
Geschrieben am: 14.10.2014 10:43:30

Hallo Björn,

ich hab mal 1 für grün
2 für gelb
3 für rot
gesetzt, wenn du einen Wert änderst, dann ändert sich die Ampel auf den schlechtesten Wert.

https://www.herber.de/bbs/user/93153.xlsm

Gruß
yummi


  

Betrifft: AW: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 12:45:10

Hi, danke schon mal. Kann ich das auch durch eine Abfrage der Farbinformation machen?
Find(Color = RGB(0,255,0)) zum Beispiel, funktioniert irgendwie nicht.


  

Betrifft: AW: Ampelfarbe Automatik von: yummi
Geschrieben am: 14.10.2014 13:01:41

Hallo Björn,

das geht normalerweise so:

Public Function HFarbeZählen(Bereich As Range, Farbe As Integer)
Dim Zelle As Range
Application.Volatile
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = Farbe Then
HFarbeZählen = HFarbeZählen + 1
End If
Next Zelle
End Function
Allerdings geht das nur für Zellen die nicht mit bedingter Formatierung gefärbt sind so viel ich weiß. Die Zellen bei dir habe ich mit bedingter Formatierung gefärbt, des halb ja die Werte 1 2 3.

Wenn du also eine 1,2 oder 3 in eine Freie zelle der sleben Spalte schreibst färbt sich die Zelle automatisch ein.

Gruß
yummi


  

Betrifft: AW: Ampelfarbe Automatik von: Daniel
Geschrieben am: 14.10.2014 13:04:17

Hi

es gibt derzeit (Office 2010) in Excel und VBA nur eine Methode, welche die Farben, die durch die bedingte Formatierung erzeugt werden, erkennen und verarbeiten kann.
Das ist der AUTOFILTER.
Alle anderen Metoden und Abfragen greifen immer nur auf die normalen Formte der Zelle zu.
Wenn du also direkt die Farben der Bedingten Formatierun für die Steuerung der Ampel verwenden willst, müsstest du:
- alle Werte in einer Spalte haben
- die Spalte der Reihe nach grün/gelb/rot filtern
- überprüfen, wieviele sichtbare Zeilen die gefilterter Liste hat und wenn mehr als keine, dann die entsprechende Ampelfarbe setzen

da das meistens nicht so praktikabel ist, überprüft man lieber die Werte und setzt die Ampelfarbe ausgehend von den Zellwerten (wenn man in der Programmierung die selben Bedingungen verwendet wie in der Bedingten Formatierung sollte auch dasselbe rauskommen).

es gab in der zwischenzeit schon einige Versuche dieses Problem zu lösen, aber die Lösungsansätze sind so kompliziert, dass sie für den Normalanwender nicht praktikabel sind.

Gruß Daniel


  

Betrifft: AW: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 13:56:39

okay, dann lasse ich das so. Ich möchte jetzt statt der Zahlen dann rot, gelb und gruen per Dropdown als Text vorgeben. Dass nimmt der so aber nicht an. Was mache ich falsch? Welche Find Methode muss man da anwenden? Nehmt es mir nciht übel, aber ich sehe den Wald vor lauter Bäumen nicht mehr. VBA usw ist eher noch so ein Hassthema.


  

Betrifft: AW: Ampelfarbe Automatik von: Daniel
Geschrieben am: 14.10.2014 14:22:21

Hi
wenn VBA dein Hass-Thema ist, dann gibts ja auch andere Möglichkeiten.
du kannst beispielsweise die Ampeln aus Text und bedingter Formatierung auf einem verdeckten Blatt erstellen und dann per verknüpfter Grafik an die passende Stelle einfügen

https://www.herber.de/bbs/user/93161.xlsx


Gruß Daniel


  

Betrifft: AW: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 14:30:55

Das hatte ich auch schon, ist aber nicht so schön. ICh möchte eigentlich nur, dass der nach rot, gelb, gruen als Text sucht und nicht nach 1,2,3. Keine Ahnung, weshalb das nicht funktioniert. Habe die Suchfunktion als Makro aufgezeichnet, kann es aber scheinbar nicht in den anderen Code übertragen.


  

Betrifft: AW: Ampelfarbe Automatik von: Daniel
Geschrieben am: 14.10.2014 14:45:48

"Schön sein" war noch nie ne Stärke von Excel.
Der Vorteil von Excel ist, wenn man beim "Schön sein" ein paar Abstriche macht, man mit wenig Aufwand bzw Wissen viel erreichen kann.

Wie sieht denn dein Code aus?

Gruß Daniel


  

Betrifft: AW: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 14:52:55

Mittlerweile wieder wie zu Anfang nur statt find(1,2,3) find(rot) und da haut der mir den Fehler rein.

Die Sache ist, dass ich nicht der einzige bin, der mit dieser Tabelle arbeitet. Hilfsspalten bedeuten dann immer zusätzliche Gefahren, das jemand versehentlich Fehler reinhaut. Das ist auch der Grund, weshalb ich das ändern wollte. Die Idee war gut, nur happerts mit der Umsetzung.

Hier die Beispielliste: https://www.herber.de/bbs/user/93164.xlsm


  

Betrifft: AW: Ampelfarbe Automatik von: Daniel
Geschrieben am: 14.10.2014 15:10:56

Hi
warum da mit FIND und rng arbeiten?

probiers mal mit folgendem Code dein iMax zu bestimmen:

If Worksheetfunction.CountIf(Range("B:B"), "grün") > 0 Then iMax = 1
IF Worksheetfunction.CountIf(Range("B:B"), "gelb") > 0 Then iMax = 2
If Worksheetfunction.CountIf(Range("B:B"), "rot") > 0 Then iMax = 3
über die Reihenfolge wird hier die Dominanz bestimmt, weil "rot" als letztes geprüft wird, wird die Ampel rot sobalt mindestens ein rot vorhanden ist.

Gruß Daniel


  

Betrifft: AW: Ampel... [GELÖST] von: Björn
Geschrieben am: 15.10.2014 09:45:36

Hallo Daniel,

danke dir. Hab es jetzt hinbekommen und es funktioniert genau so, wie ich es benötige.

Schönen Tag noch.

Grüße,
Björn


  

Betrifft: AW: Ampelfarbe Automatik von: Björn
Geschrieben am: 14.10.2014 14:06:02

okay, dann lasse ich das so. Ich möchte jetzt statt der Zahlen dann rot, gelb und gruen per Dropdown als Text vorgeben. Dass nimmt der so aber nicht an. Was mache ich falsch? Welche Find Methode muss man da anwenden? Nehmt es mir nciht übel, aber ich sehe den Wald vor lauter Bäumen nicht mehr. VBA usw ist eher noch so ein Hassthema.