Registerfarbe per Mini VBA
14.01.2014 07:53:28
Maik
ich bin stiller und heimlicher Fan. Hier haben schon viele top Beiträge und Antworten dafür gesorgt das ich so manches Problem gelöst bekam. An einer Stelle komme ich derzeit nicht weiter.
Folgendes versuche ich:
Wenn in D6 eine "0" steht dann mach die Registerfarbe "grün", wenn in "D6" eine 1 steht dann mach die Registerfarbe "rot"
Das habe ich mir von hier und da zusammengebaut (bescheidene VBA Kenntnisse):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 0 And Target.Address = "$D$6" Then ActiveSheet.Tab.ColorIndex = 43
If Target = 1 And Target.Address = "$D$6" Then ActiveSheet.Tab.ColorIndex = 3
End Sub
Funktioniert soweit. Ich schreibe in D6 die 0 es kommt Grün, ich schreibe 1 es kommt rot. Wenn ich den Wert aber nicht direkt selbst reinschreibe sondern errechnen lasse dann geht es nicht.
Beispiel für das was in D6 steht:
=WENN($AD$4="aktiv";0;1)
Entsprechend gibt er mir 0 oder 1 aus, funktioniert auch ---> Nur hat dies leider keine Auswirkung mehr auf die Registerfarbe. Ich beschuldige mich einfach als so unwissend das ich nicht weiss wie ich da nun wirklich keine Ahnung habe wie ich vorgehen muss.
So einfacher wäre wenn das VBA sich einfach direkt aus der Zelle $AD$4 speist. Habe ich auch ausprobiert und ging aber auch nicht. Hier mein Versuch:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "aktiv" And Target.Address = "$AD$4" Then ActiveSheet.Tab.ColorIndex = 43
If Target = "inaktiv" And Target.Address = "$AD$4" Then ActiveSheet.Tab.ColorIndex = 3
End Sub
Falls ein irgendeine Relevanz hat:
"aktiv" errechnet sich aus einem Datum in Zelle E6. Dort schreibe ich rein wann ein Mitarbeiter entlassen wurde. Steht nichts drin ist das Ergebnis "aktiv", steht ein Entlassungsdatum das in der Vergangenheit liegt wechselt die Anzeige in AD4 einfach auf "inaktiv".
Die Formel dazu lautet:
=WENN(ODER(HEUTE()
LG Maik