2017-04-27 6 views
0

Hey so heres, was ich habe. Ich verfolge Fälligkeitstermine in einem System und sie sind Teil eines Tabellenkalkulationsprogramms. Ich habe es gelb markiert, wenn es 60 Tage rot ist, wenn es überfällig ist (bedingte Formatierung innerhalb des Blattes) Ich habe dann eine Zählung eingerichtet = COUNTIF (I3: I02, "> =" & HEUTE() + 60) Nach Heute = COUNTIF (I3: I102 "< =" & TODAY()) Past DueVisual Basic Excel Bedingte Formeln

ich diese Zählungen verwenden, um anzuzeigen, ob etwas markiert ist oder nicht sie dann in die Formel unten drücken. Was ich jetzt versuche, ist eigentlich, den Tab des Blattes zu bekommen, um die Farbe zu ändern, je nachdem, ob etwas in dem Blatt fällig oder überfällig ist, das ist das, was ich bisher habe.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$B$1" Then 
     Select Case Target.Value 
     Case Is > 0 
      Me.Tab.Color = vbRed 
     End Select 
    ElseIf Target.Address = "$B$2" Then 
     Select Case Target.Value 
     Case Is > 0 
      Me.Tab.Color = vbYellow 
     End Select 
    Else 
     Me.Tab.Color = vbGreen 
    End If 
End Sub 

Dies so weit wie das Ändern der Farbe des Registerkarte funktioniert geht, aber wenn ich den Wert von B2 nach der Tatsache ändern, entfernt es die Rote Fahne? I.e. Einer übersteuert den anderen. Ich brauche es, um rot zu bleiben, wenn es einen roten gibt. Grundsätzlich möchte ich, dass es aufhört, wenn die if-Anweisung wahr ist, wenn es nicht weitergeht, den Wert von b2..etc zu überprüfen.

Antwort

0

Was Sie scheinen wollen, die Werte von B1 und B2 prüfen, ob entweder B1 oder B2 geändert wird:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Range("B1").Value > 0 Then 
     Me.Tab.Color = vbRed 
    ElseIf Range("B2").Value > 0 Then 
     Me.Tab.Color = vbYellow 
    Else 
     Me.Tab.Color = vbGreen 
    End If 
End Sub 

Basierend auf Ihre Frage, es klingt wie B1 und B2 Formeln enthalten. Daher werden sie das Ereignis Worksheet_Change nicht auslösen, wenn sie eine andere Zahl berechnen. Daher habe ich keinen Test für den Standort von Target enthalten - der Code wird ausgeführt, wenn eine Zelle auf dem Blatt (manuell) geändert wird.

Verwandte Themen