Wie kann ich mit VBA einen Textstring in
einer Tabelle suchen und wenn er gefunden wird,
für jede Fundstelle im Extrablatt die Zeile einfügen,
die jeweilige Zeile sollte aber nur einmal vorkommen.
Danke und Gruß
Karl-Heinz
Option Explicit
Sub FindenUndKopieren()
Dim iRowS As Integer, iRowT As Integer
Dim sWord As String
Dim rngSuchbereich As Range
Dim rngZelle As Range
sWord = InputBox( _
prompt:="Suchbegriff:", _
Default:="8")
If sWord = "" Then Exit Sub
sWord = UCase(sWord)
iRowT = 1
iRowS = 0
Set rngSuchbereich = Worksheets(2).UsedRange
For Each rngZelle In rngSuchbereich
If InStr(UCase(rngZelle.Text), sWord) > 0 And iRowS rngZelle.Row Then
iRowS = rngZelle.Row
Worksheets(2).Rows(rngZelle.Row).Copy Worksheets("Tabelle1").Rows(iRowT)
iRowT = iRowT + 1
End If
Next
End Sub
Ich habe Deine Variable iRowS für das benutzt, was Du Dir vorgestellt hattest: sie merkt sich die Zeile der gefundenen Zelle, und es wird nur dann kopiert, wenn der Fund sich in einer neuen Zeile befindet.