2016-08-29 4 views
0

Ich habe eine Arbeitsstationsinventarliste mit einem Kaufdatum in der Zelle "D", in der ich die Zelle "I2" mit = TODAY() habe. Die Zelle "E" hat die Formel = ROUND (YEARFRAC (D3, $ I $ 2), 0), um den Wert der Anzahl der Jahre in Zelle "E" zu erhalten.Bedingte Formatierung oder Makro aktiviert - Ändern der Zellenhintergrundfarbe basierend auf einem anderen Zellenwert

Meine Frage bezieht sich auf Zelle "F" Ich möchte für die Zelle automatisch die Farbe basierend auf der Anzahl der Jahre in Zelle "E" ändern, aber ich habe Mühe, dies zu tun. Entweder mit bedingter Formatierung oder um ein gutes Makro dafür zu finden.

Ich habe einen Screenshot hinzugefügt, um Ihnen eine bessere Idee zu geben. Ich hätte vielleicht einen ähnlichen Thread während meiner Recherche verpasst, aber wenn jemand weiß, wo ich hinschauen könnte. Das ist eine gute Antwort für mich. enter image description here

+1

In ** Bedingtes Format ** können Sie eine Formel angeben, um zu bestimmen, ob ein Format anwenden oder nicht. So können Sie 3 definieren Solche Formate, für jede Bedingung (#of years in 1-3, 3-4, 5 -...), verwenden den Wert in Spalte E. Es ist nicht notwendig, irgendein VB-Makro zu schreiben, – FDavidov

Antwort

3

Sie die reguläre bedingte Formatierung verwenden:

Select „Formel verwenden, auf die Zellen zu bestimmen zu formatieren“, wie der Regelsatz in der Screenshot unten (wenn Jahre> = 1 und Jahre < = 3). enter image description here

Wenden Sie diese Formel, um Ihren gesamten Bereich (nicht zu vergessen die $ Zeichen vor der Zeilennummer zu entfernen, um es mit den Zeilen Zahlen ändern wird). enter image description here

Wiederholen Sie diesen Schritt durch Zugabe von 2 weitere Regeln für die anderen Szenarien (gleichen Typs durch eine Formel verwendet wird):

  1. (falls Jahre> 3 und Jahre < = 4) dann Gelb.

  2. (wenn Jahre> 5) dann rot. In deinem Beitrag hast du geschrieben: (Years> 5) in deiner Legende rechts, aber in deiner gewünschten Screenshot möchtest du eigentlich zeigen, wenn (Years> = 5) dann Red. also müssen Sie sich entscheiden, welches Sie wollen.

+0

Arbeitete perfekt. Vielen Dank ein Haufen! – Bertsector

+0

@ Bertsector Gern geschehen. –

+1

@ Bertsector Wenn das bedeutet, dass du ** not ** willst, dass '0' formatiert ist, möchtest du vielleicht dein OP anpassen (und vielleicht klären Sie die Bänder, während Sie dies tun). – pnuts

1

Versuchen Sie unten Bedingungen, es funktionierte für mich. Sie müssen drei verschiedene Regeln auf denselben Bereich anzuwenden

=$K$5>=5 - Red 
=AND($K$5<5,$K$5>3) -Yellow 
=AND($K$5>=1,$K$5<=3) - Green 
+0

tue ich nicht weiß, warum ColumnK, aber das Verankern der Zeilen ist wahrscheinlich mehr Arbeit in diesem Szenario als "Standard" Formatierung manuell anwenden. – pnuts

+0

@pnuts, keinen bestimmten Grund für ColumnK, nahm ich es nur als Beispiel – Siva

2

Select ColumnF und HOME> Styles - Bedingte Formatierung, Neue Regel ..., Verwenden Sie eine Formel, welche Zellen zu bestimmen und Format Werte zu formatieren, wo diese Formel gilt::

=AND(ROW()>2,E1>4,E1<>"") 

Format ..., wählen rot Fill, OK, OK.

Dann fügen Sie eine neue Regel von:

=AND(ROW()>2,E1<5,E1<>"") 

mit gelber Füllung und schließlich eine dritte Regel (wenn Sie einen ‚Standard‘ füllen, anstatt anwenden könnten wählen) von:

mit die ziemlich seltsame Farbfüllung.

[1] Wenn sie nicht in der obigen Reihenfolge hinzugefügt werden, sollten sie im Managerfenster Bedingte Formatierungsregeln neu angeordnet werden, wobei unten rot und in der Mitte gelb angezeigt wird.
[2] Check Stop, wenn für alle drei Regeln (oder zumindest für die ersten beiden) der Wert True gesetzt ist.
[3] 0 fällt unter die gleiche Regel wie 1 to 3 years.
[4] Um die Bereichsauswahl und Aktualisierung zu vereinfachen, gelten alle Regeln für die gesamte Spalte. Dies hat jedoch das Vermeiden des Anwendens der Formatierung auf die ersten zwei Zeilen und alle, die in Spalte E leer sind, kompliziert gemacht.

1

Ich neige dazu, die bedingte Formatierung auf die Fälle zu beschränken, in denen ich sie für einen ganz kleine und FIXED verwenden

Andernfalls (nie geändert/hinzugefügt/gelöscht/verschoben werden) Anzahl der Zellen in der mittlerer/langer Lauf kann beides zu einem Arbeitsblatt führen (nach dem Kopieren & Einfügen und/oder Einfügen/Löschen von Zellen) und Größenzunahme

Deshalb für die Färbung von Zellen auf einer Liste würde ich immer einen VBA-Ansatz verwenden , wie der folgende Code:

Option Explicit 

Public Sub main() 
    Dim cell As Range 
    Dim firstColor As Long, secondColor As Long, thirdColor As Long 

    With Worksheets("Inventory") '<--| change "Inventory" to your actual sheet name 
     firstColor = .Range("I9").Interior.Color '<--| change "I9" to your actual cell address with "1st color" 
     secondColor = .Range("I10").Interior.Color '<--| change "I10" to your actual cell address with "2nd color" 
     thirdColor = .Range("I11").Interior.Color '<--| change "I11" to your actual cell address with "3rd color" 
     For Each cell In .Range("E3", .Cells(.Rows.Count, "E").End(xlUp)).SpecialCells(XlCellType.xlCellTypeFormulas, xlNumbers) '<--| loop through column "E" from row 3 down to last non empty row cells with numbers deriving from formulas only 
      cell.Offset(, 1).Interior.Color = Switch(cell.value <= 3, firstColor, cell.value <= 4, secondColor, cell.value > 4, thirdColor) '<--| adjust current cell adjacent one color according to current cell value 
     Next cell 
    End With 
End Sub 

Hinweis: I Switch() Funktion Bedingungen angepasst Ihr Beispiel Spalt passen „E“ und „F“ Ergebnis, das aus etwas anders, was aus Ihrem „NEIN kommen würde. " range legenda. Auch diese letzteren haben ihre ersten beiden Bereiche einander überlappen

+1

Würden Sie das Makro dann jedes Mal erneut ausführen, wenn ein neues Asset erworben wird und wenn sich das Jahr ändert? – pnuts

+1

@pnuts Sie können Ereignishandler für Arbeitsblätter verwenden, wenn Sie keine Schaltfläche anklicken – user3598756

Verwandte Themen