27.05.2022, 23:29 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2022, 23:50 von Egon12.)
Ich vermute mal, dass du in den Spalten B und D suchen willst.
Ins Modul Tabelle2:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim Zeilennummer As Range, i As Long If Not Intersect(Target, Range("M4")) Is Nothing Then With Tabelle2 Set Zeilennummer = .Range("B4:D" & .Cells(.Rows.Count, 2).End(xlUp).Row).Find(.Range("M4").Value2, lookat:=xlPart, LookIn:=xlFormulas) If Not Zeilennummer Is Nothing Then For i = 13 To 17 .Cells(7, i) = .Cells(Zeilennummer.Row, i - 8) Next i Else For i = 13 To 17 .Cells(7, i) = "" Next i End If End With End If End Sub
Aus wer weiss was für einen Grund musste ich in deiner Datei die Zellverweise in Tabelle2 einschliessen. Normalerweise braucht man das im Modul des Tabellenblattes nicht. Irgend was ist da nicht mehr so wie es sein soll.
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:1 Nutzer sagt Danke an Egon12 für diesen Beitrag 28 • kingkong
30.05.2022, 09:12 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2022, 09:16 von Egon12.)
Hallo,
du brauchst noch vor der Formel, welche du verwendest =WENNNV(deine Formel;"")
2. Variante: Du verwendest in deiner Datei VBA nimm den Code in #14
Der lässt sich auch zwecks Gestaltung problemlos erweitern. z.B. so:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim Zeilennummer As Range, i As Long If Not Intersect(Target, Range("M4")) Is Nothing Then With Tabelle2 Set Zeilennummer = .Range("B4:D" & .Cells(.Rows.Count, 2).End(xlUp).Row).Find(.Range("M4").Value2, lookat:=xlPart, LookIn:=xlFormulas) If Not Zeilennummer Is Nothing Then For i = 13 To 17 If .Cells(Zeilennummer.Row, i - 8) = "V" Then .Cells(7, i) = "Ja" Else .Cells(7, i) = "Nein" End If Next i Else For i = 13 To 17 .Cells(7, i) = "" Next i End If End With End If End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:1 Nutzer sagt Danke an Egon12 für diesen Beitrag 28 • kingkong
eigentlich logisch, diese Prozedur klappert die Spalten B und D ab und der erste Treffer kann als Zeilennummer weiter verarbeitet werden. Da in den Zeilen 4 und 5 die Zahlen 1 bis 9 jeweils enthalten sind wird der erste Treffer ausgegeben. Um das zu verhindern kann man mittels:
die Ausgabe falscher Werte einigermaßen verhindern. Sollte es immer auf einmalige Werte ankommen bleibt mit der Methode .Find noch die Möglichkeit zu xlWhole statt xlPart. Aber das war ja nicht die ursprüngliche Frage.
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:1 Nutzer sagt Danke an Egon12 für diesen Beitrag 28 • Rudi'S