Falscher Fundwert 1.Zeile
29.03.2018 21:07:14
Pascal
Ich habe ein Problem, wo ich nicht weiterkomme. Im Anhang findet ihr Details bzw. Muster.
Erklärung als Text:
In der Spalte A sind verschiedene Werten auch Leerzellen, die Werten werden später gebraucht als Referenz.
In Spalte C sind Werten mit 1*, die ich als Fundzeile benenne. Bei der Fundzeile in der Spalte B wird den Wert als Suchbegriff genommen. Dieser Wert soll jetzt nach oben gesucht werden bis eine Zeile mit der gleichen Nummer & zusätzlich einen Wert in der Spalte A findet.
Der erste Fundwert in dieser Zeile (Spalte A) soll jetzt zur Fundzeile eingefügt werden.
Was der Code macht ist, dass er immer die ersten Zeile sucht vom Suchbegriff. Das sollte eben nicht passieren, sondern er soll von unten nach oben suchen. Es kann eben sein, dass Suchbegriffe unterschiedliche Fundwerten haben. Wie im Beispiel gezeigt wird.
Private Sub NormaleAuslieferungen_Click()
Dim i As Double, LR As Double, SP As Integer
Dim Suchen As String, Anzahl, Zeile As Double, rr As Range
SP = 2 'Spalte B; zur Bestimmung letzte Zeile
With Sheets("LBs")
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = 2 To LR
If Left(.Cells(i, 3), 1) = "1" Then
Suchen = .Cells(i, 2)
'Ermittlung wieviele Einträge (gleiche Nr) oberhalb der Zeile vorhanden sind
Anzahl = Evaluate("=SumProduct((B2:B" & i - 1 & "=""" & Suchen & """) * (1))")
If Anzahl > 1 Then
Set rr = .Columns(2).Find(Suchen) 'ggf weitere Parameter für Find ergänzen
If (rr Is Nothing) Then
MsgBox Suchen + " gibt es nicht"
Else
Zeile = rr.Row 'Zeile erster Fund
If .Cells(Zeile, 1) "" Then
.Cells(i, 1) = .Cells(Zeile, 1).Value
Else
.Cells(i, 1) = .Cells(Zeile, 1).End(xlUp).Value
End If
End If
End If
End If
Next
End With
Call Filter
End Sub
Ich hoffe es kann mir jemand helfen.
Lg Pascal
https://www.herber.de/bbs/user/120766.xlsx