Ich habe da mal eine Frage zur VBA-Range.Find-Methode. Warum findet diese Methode wenn ich z.B. nach der Zahl 5 suche die Zahl 25 und sagt mir, dass das die Übereinstimmung ist.
Ich habe ein Rechnungsblatt und suche in einem Materialblatt mit dieser Methode eine Rechnungs-ID-Nummer, damit ich den entsprechenden Datensatz in das Rechnungsblatt kopieren kann. Nur findet er z.B. wenn ich aus dem Rechnungsblatt nach der ID-Nummer 5 im Materialblatt suche die ID-Nummer 25. Dazu muss ich sagen, dass es in dem Materialblatt die Rechnungs-ID-Nummer 5 gar nicht gibt. Die Methode müsste also damit enden, dass es keine Übereinstimmung gibt. Warum ist das aber nicht so?
Nachfolgend noch mein Codeteil, mit dem ich suche:
With wksRech_Pos
lngLastRowRech_Pos = .Cells(Rows.Count, 1).End(xlUp).Row
For lngRowRechnung = 2 To wksRechnung.Cells(Rows.Count, 1).End(xlUp).Row
'Text in Statusbar
Application.StatusBar = "Zeile Rechnung: " & lngRowRechnung
DoEvents
lngSuchtext = wksRechnung.Cells(lngRowRechnung, 1)
Set rngSuchbereich = .Range("B1:B" & lngLastRowRech_Pos).Find(What:=lngSuchtext, LookIn:=xlValues, MatchCase:=True)
If Not rngSuchbereich Is Nothing Then
strAddresse = rngSuchbereich.Address
Do
Application.StatusBar = "Zeile Rechnung: " & lngRowRechnung & " - Copy Zeile Material"
DoEvents
.Cells(rngSuchbereich.Row, 11).Copy _
wksRechnung.Cells(lngRowRechnung, 39)
wksRechnung.Cells(lngRowRechnung, 39).NumberFormat = "#,##0.00 $"
.Cells(rngSuchbereich.Row, 13) = "x"
Set rngSuchbereich = .Range("B1:B" & lngLastRowRech_Pos).FindNext(rngSuchbereich)
Loop While Not rngSuchbereich Is Nothing And rngSuchbereich.Address strAddresse
End If
Next
End With
Ich hoffe, Ihr könnt mir helfen. Danke schon mal vorab,
Kasimir