27.05.2022, 22:29 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2022, 22: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, 08:12 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2022, 08: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