2017-07-27 3 views
1

Ich versuche, eine Beziehung zwischen der aktiven Zelle und einer Reihe von anderen Zellen, vorzugsweise mit bedingter Formatierung darzustellen.Excel bedingte Formatierung basierend auf der aktiven Zelle

Ich mache im Wesentlichen ein Gantt-Diagramm, und möchte in der Lage sein, Zellen eine andere Farbe zu schattieren, um Abhängigkeiten zu identifizieren. Also die Idee ist, dass ich in Spalte A eine Reihe von Aufgaben-IDs habe, und in Spalte B habe ich die Beschreibung und Spalte C ist eine Reihe von Abhängigkeiten.

Wenn ich etwas wie "B3" ausgewählt habe, würde ich den Wert in C3 (eine durch Komma getrennte Liste von IDs in Spalte A) betrachten, um zu bestimmen, welche übereinstimmenden Zeilen durch die IDs in Spalte A identifiziert werden , sind Abhängigkeiten - dann färbe diese unterschiedlich.

Dies würde basierend auf der aktiven Zelle wechseln.

Ich vermute, das ist nicht möglich mit bedingter Formatierung, und müssen möglicherweise einige VBA oder kommen mit einer anderen Möglichkeit, diese Beziehungen zu identifizieren. Hat jemand etwas Ähnliches getan?

Sagen wir, ich habe meine einfache Tabelle so etwas wie dieses ein:

Task ID | Description | Dependencies 
--------|-------------|------------- 
1  | Task One |  
2  | Task Two | 1 
3  | Task Three | 
4  | Task Four | 1, 3 
5  | Task Five | 1, 2, 4 

Wenn ich die „1, 3“ Zelle (neben Task Four) ausgewählt Ich würde wollen Aufgabe One und Task-Drei hervorgehoben werden.

Ich habe etwas VBA-Code hinzugefügt, um einige bedingte Formatierungen in Echtzeit zu aktualisieren.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Target.Calculate 
    End Sub 

Ich habe einige bedingte Formatierung eine andere Zelle in der gleichen Zeile wie das, was ich habe, wie die aktive Zelle markieren arbeiten:

=CELL("address")=CELL("address",$C2) 

Bezieht sich auf die Spalte I hervorheben möchten, Säule B

Aber ich möchte nicht immer die benachbarte Zelle hervorheben ... Ich möchte die richtigen Aufgaben basierend auf den Werten in der Spalte Abhängigkeiten finden.

+0

Dies wird vba in einer Worksheet_SelectionChange Veranstaltung teilnehmen. –

+0

Eine hinzugefügt, aber kann nicht herausfinden, wie man das vlookup Zeug macht. – Dave

+0

Setzen Sie den Code in die Original Post mit [Bearbeiten] –

Antwort

1

Verwendung dieses Ereignis in dem Arbeitsblatt Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim str As Variant 
Dim strarr() As String 
Dim j As Long 
If Not Intersect(Target, Range("C:C")) Is Nothing Then 
    Range("B:B").Interior.Pattern = xlNone 
    If Target <> "" Then 
     strarr = Split(Target, ",") 
     For Each str In strarr 
      j = 0 
      On Error Resume Next 
      j = Application.WorksheetFunction.Match(CLng(Application.Trim(str)), Range("A:A"), 0) 
      On Error GoTo 0 
      If j <> 0 Then 
       Cells(j, 2).Interior.Color = 65535 
      End If 
     Next str 
    End If 
End If 

End Sub 

enter image description here

+0

Das funktioniert ziemlich gut! Ich kann nur sehen, dass es die Zellen nicht aufhebt, wenn ich von ihnen abhebe (damit sie hervorgehoben bleiben), aber ich denke, dass ich das herausfinden kann. Vielen Dank!! – Dave

+0

Ich dachte, Sie wollten nicht, dass sie die Markierung aufhebt, bis Sie eine andere Zelle in Spalte C angeklickt haben. Bewegen Sie die 'Range (" B: B "). Interior.Pattern = xlNone' zwei Zeilen hoch und es wird jedes Mal gelöscht ist ausgewählt. Bitte denken Sie daran, als korrekt zu markieren, indem Sie das Häkchen bei der Antwort anklicken. –

+0

Funktioniert perfekt! Ich danke dir sehr! – Dave

Verwandte Themen