Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Begriffe in Zeile suchen

Begriffe in Zeile suchen
26.09.2019 11:56:55
Peter
Hallo liebes Forum,
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

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: hat zumindest 1 Monat funktioniert
26.09.2019 13:18:22
Fennek
Hallo Peter,
nachdem ich meinen Code erkannt habe, konnte ich auch die Datei finden.
2. Probleme:
- was bedeutet Cluster
- auch wenn ich die Aufgabe damals als ganz interessant empfand, bei solchen Nachfragen solltest Du einen Anreiz liefern
mfg
AW: hat zumindest 1 Monat funktioniert
26.09.2019 15:47:48
Peter
Hallo Fennek,
nach genauer Betrachtung würde es auch ausreichen, dass wenn ich den Code 2 mal hintereinander ausführen lasse, die zuvor ermittelten Werte nicht überschrieben werden.
Beispiel:
Erste Ausführung des Codes
Const Anz_Sp As Integer = 4
Const Such_Sp As Integer = 8
Cells(r, Anz_Sp + 1) = Tx
Zweite Ausführung des Codes
Const Anz_Sp As Integer = 4
Const Such_Sp As Integer = 9
Cells(r, Anz_Sp + 1) = Tx
Die Ergebnisse werden in der gleichen Spalte eingetragen, wobei im jetzigen Fall die Werte aus der ersten Ausführung bei der zweiten Ausführung durch eine leere Zelle ersetzt werden. Wenn hier die Werte aus der ersten Ausführung stehen bleiben würden und die aus der zweiten Ausführung nur mit dazu kommen würden, wäre es für mich schon ausreichend.
Viele Grüße
Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige