Ich würde gern in Spalte S in eine Zelle klicken. Diese soll dann markiert werden. Steht in Spalte X dasselbe (Text oder und Zahl) dann soll auch diese Zelle in derselben Farbe markiert werden. Klicke ich auf irgend eine andere Zelle, sollen beide Markierungen wieder weg sein.
versuche es mal mit diesem Makro im Modul des Tabellenblattes:
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim isect As Range Range("S:X").Interior.Color = xlNone Set isect = Application.Intersect(Target, Columns(19)) If Not isect Is Nothing Then Cells(Target.Row, 19).Interior.Color = 65535 If Cells(Target.Row, 24).Value = Cells(Target.Row, 19).Value Then Cells(Target.Row, 24).Interior.Color = 65535 End If End Sub
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag 28 • Klaus
02.12.2022, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2022, 14:20 von Klaus.)
Hallo Klaus-Dieter, vielen lieben Dank für deine Hilfe.
Die Spalte S wird perfekt markiert und auch wieder entmarkiert wenn ich die Zelle oder die Spalte verlasse. Jedoch die Markierung der Zelle gleichen Inhalts in der Spalte X dazu funktioniert nicht. Spalte X bleibt farblos.
Und was mir gerade auffällt - es wäre auch genial, wenn das andersrum auch funktionieren würde. Also wenn ich in Spalte X in eine Zelle klicke und in Spalte S die Zelle gleichen Inhalts würde markiert werden.
Oha... entschuldige bitte. Da habe ich mich nicht verständlich ausgedrückt. Das tut mir leid.
Wenn ich in S eine Zelle anklicke soll diese markiert werden. Steht derselbe Inhalt der in dieser Zelle in S steht auch in X irgendwo in irgend einer Zelle, dann soll auch diese markiert werden.
Toll wäre es, wenn das auch andersherum funktioniert. Also so das man in X eine Zelle anklickt und wenn der selbe Wert irgendwo in S steht, dass diese Zellen dann auch markiert werden.
such dir irgendeine Zelle aus, die als Zwischenspeicher dienen soll. Ich nehme mal Z1.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And (Target.Column = 19 Or Target.Column = 24) Then Range("Z1") = Target Else Range("Z1").ClearContents End If End Sub
Das kopiert dir den Wert der angeklickten Zelle in Z1. Jetzt brauchst du nur noch eine bed.Form. mit der Formel =(S1<>"")*(S1=$Z$1) (S1 ist die aktive Zelle bei der Eingabe der Formel).
Statt Z1 kannst du auch eine beliebige Zelle in einem beliebigen Tabellenblatt verwenden. Und natürlich darf dies auch ausgeblendet sein, wenn einen das stört (oder das Zellformat ";;;" enthalten)
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28 • Klaus
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim isect As Range Dim lngZeile As Long Range("S:X").Interior.Color = xlNone Set isect = Application.Intersect(Target, Columns(19)) If Not isect Is Nothing Then Cells(Target.Row, 19).Interior.Color = 65535 lngZeile = Application.Match(Target.Value, Columns(24), 0) '> 0 Then If lngZeile > 0 Then Cells(lngZeile, 24).Interior.Color = 65535 End If End If End Sub
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag 28 • Klaus
02.12.2022, 18:41 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2022, 18:44 von Klaus.)
Hallo Klaus-Dieter. Der neue Code funktioniert schon fast richtig
Doppelte Werte in X werden nicht erkannt und wenn der Wert auf X ganz fehlt kommt eine Fehlermeldung. Hallo Helmut, auch dir vielen Dank für deine Hilfe. Die Idee mit der Kombination von VBA und bedingter Formatierung ist nicht schlecht. Ich werde das auch gleich mal austesten. Viele Grüße Klaus