ich habe ein kleines Problem mit meinem VBA-Code und zwar haben sich die Bedingungen etwas verändert, woraufhin auch der VBA-Code etwas angepasst werden müsste. Derzeit werden die Zeilen durchsucht und alle gefundenen Begriffe mit einem "|" getrennt ausgegeben.
In den Veränderten Anforderungen sollen die Zeilen geclustert werden, was bedeutet, dass ich z.B. 5 Spalten mit unterschiedlichen Suchbegriffen habe (sollte variabel sein) und wenn ein Suchbegriff innerhalb dieses Clusters gefunden wird soll der Oberbegriff (steht immer in Zeile 1) ausgegeben werden. Die Ausgabe der Begriffe sollte immer in einer Spalte erfolgen.
Ich wäre euch sehr dankbar, wenn mir jemand beim umschreiben behilflich sein könnte.
Viele Grüße
Peter
Const Anz_Sp As Integer = 4 'Anzahl der Spalten mit Beschreibungen
Const Such_Sp As Integer = 8 'Spalte der Suchbegriffe
Sub Textteile_Suchen()
On Error GoTo NN
lr = Cells(Rows.Count, 1).End(xlUp).Row
Nm = Application.Transpose(Range(Cells(2, Such_Sp), Cells(2, Such_Sp).End(xlDown)))
'vorbereiten
With CreateObject("vbscript.regexp")
.Global = False
.IgnoreCase = False
.MultiLine = True
For r = 2 To lr
Ar = " " & Join(Application.Transpose(Application.Transpose(Range(Cells(r, 1), Cells(r, _
Anz_Sp)))), " ") & " "
Tx = ""
For i = 1 To UBound(Nm)
.Pattern = "|b" & Nm(i) & "|b" & "|^" & Nm(i) & "|b"
If InStr(1, Ar, Nm(i), vbTextCompare) > 0 Then
If .Test(Ar) Then Tx = Tx & Nm(i) & "|"
End If
NN:
Err.Clear
Next i
Cells(r, Anz_Sp + 1) = Tx
Next r
End With
End Sub