Richtung der Suche der Find-Funktion ändern
20.06.2025 17:25:35
Andreas
ich hatte gestern eine Frage bzgl. der Find-Funktion gestellt (Betreff: Laufzeitfehler 91). Ich hatte sehr viele nützliche Hinweise (vor allem von Boris und Piet) bekommen, sodass meine Suchfunktion wie folgt aussieht und funktioniert:
Sub Firma()
Dim i As Integer
Dim rng As Range
For i = 6 To 20000
If ActiveSheet.Cells(i, 30).Value = "" Then
Set rng = Worksheets("Firmenstammdaten").Range("A1:A200").Find(what:=ActiveSheet.Cells(i, 2).Value, MatchCase:=False, LookAt:=xlWhole)
If Not rng Is Nothing Then
Worksheets("Bericht 1").Cells(i, 30).Value = rng.Offset(0, 1).Value
Worksheets("Bericht 1").Cells(i, 31).Value = "1"
Else
Worksheets("Bericht 1").Cells(i, 30).Value = ""
End If
End If
Next i
End Sub
Von Piet hatte ich den Tipp bekommen, dass es cleverer wäre, "in einem Range von 20.000 Zeilen die Daten von" A1:A200 zu suchen!
Das kann ich nachvollziehen. Meine Prozedur braucht wirklich, wirklich lang.
Ich scheitere aber an der Umsetzung. Wichtig ist, dass bei Übereinstimmung am Ende in dem worksheets "Bericht 1" (teilw. auch im Code noch als activeSheet bezeichnet ... das ändere ich noch) in der Spalte 30 die Werte aus der Tabelle "Firmenstammdaten, Spalte 2 eingetragen werden.
Ich bin nicht gut genug darin, die find-Funktion so umzubasteln, dass es klappt. Geht es überhaupt, die Find-Funktion hier zu benutzen?
Ich hoffe nochmal sehr auf Eure Hilfe. Vielen, vielen Dank fürs Gedanken machen!
Danke und einen schönen Freitag!
Andreas
Anzeige