Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Teilstring in Zellen suchen und Zellinhalt kopiere

Teilstring in Zellen suchen und Zellinhalt kopiere
17.07.2018 14:46:23
Jakob
Hallo,
ich möchte Daten aus Spalte G (Tabelle1) auf Teilwörter prüfen, welche in Spalte A (Tabelle2) vorhanden sind.
Gefundene Einträge sollen in Spalte B (Tabelle2) kopiert werden.
Folgenden Code-Schnipsel hatte ich aus einem anderen Beitrag gefunden.
Sub test()
Dim such, Bereich
such = "test"
For i = 1 To 8
If InStr(1, Cells(i, 1).Value, such, 1) Then
Bereich = Bereich + Cells(i, 1).AddressLocal(False, False) & ","
End If
Next
Bereich = Left(Bereich, Len(Bereich) - 1)
Range(Bereich).EntireRow.Copy Destination:=Worksheets("Tabelle2").Cells(1, 1)
End Sub

Wenn ich es richtig deute, müsste ich ja jetzt den Suchbegriff als Variable anlegen, welche alle Werte in Spalte A nimmt und schrittweise prüft.
Gibt es Tipps, wie es am besten umzusetzen ist? Eine zweite Schleife?
Freue mich auf Eure Tipps.
Viele Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
17.07.2018 17:02:16
Matthias
Moin!
Du musst nicht jeden Begriff anlegen. Lies in dir den Bereich mit den Begriffen als Variable ein und Durchlaufe den Bereich. Für den Vergleich kannst du entweder eine Schleife durch deine ganzen Daten machen oder nimmst die range.find Funktion auf den Bereich. HIer mal ein Beispiel.
Sub teilstring_suche()
Dim Daten As Range
Dim teilwörter
Dim zeile As Long
Dim eintrag As Long
Dim treffer As Object
teilwörter = Tabelle2.Range(Tabelle2.Cells(1, 1), Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows. _
Count, 1).End(xlUp).Row, 2))
Set Daten = Tabelle1.Range(Tabelle1.Cells(1, 7), Tabelle1.Cells(Tabelle1.Cells(Tabelle1.Rows. _
Count, 7).End(xlUp).Row, 7))
eintrag = 1
For zeile = 1 To UBound(teilwörter, 1)
Set treffer = Daten.Find(teilwörter(zeile, 1), , , xlPart)
If Not treffer Is Nothing Then
teilwörter(eintrag, 2) = teilwörter(zeile, 1)
eintrag = eintrag + 1
End If
Next
Tabelle2.Range(Tabelle2.Cells(1, 1), Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows.Count, 1).End( _
xlUp).Row, 2)) = teilwörter
End Sub
VG
Anzeige
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 09:48:06
Jakob
Ich habe gerade gemerkt, dass er mir ja außerdem die Teilwörter ausgibt, für die er Einträge hat.
Ziel ist es aber, die überpüften Datensätze zu kopieren.
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 12:38:06
Matthias
Moin!
Upps, dann war das ein Missverständnis. Dann ändert sich der Code ein wenig. Zum Löschen hätte ich jetzt einfach die Spalte B gelöscht - ist schon mit dabei.
Sub teilstring_suche()
Dim Daten As Range
Dim teilwörter
Dim ergebnis As Object
Dim zeile As Long
Dim treffer As Object
Dim teffer1
teilwörter = Tabelle2.Range(Tabelle2.Cells(1, 1), Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows. _
Count, 1).End(xlUp).Row, 1))
Set Daten = Tabelle1.Range(Tabelle1.Cells(1, 7), Tabelle1.Cells(Tabelle1.Cells(Tabelle1.Rows. _
Count, 7).End(xlUp).Row, 7))
Set ergebnis = CreateObject("Scripting.Dictionary")
'lösht die Spalte
Tabelle2.Columns("b").ClearContents
For zeile = 1 To UBound(teilwörter, 1)
Set treffer = Daten.Find(teilwörter(zeile, 1), , , xlPart)
If Not treffer Is Nothing Then
treffer1 = treffer.Address
Do
If Not ergebnis.exists(treffer.Value) Then ergebnis.Add treffer.Value, 1
Set treffer = Daten.FindNext(treffer)
Loop While Not treffer Is Nothing And treffer.Address  treffer1
End If
Next
Tabelle2.Range(Tabelle2.Cells(1, 2), Tabelle2.Cells(ergebnis.Count, 2)) = Application.Transpose( _
ergebnis.keys)
End Sub
VG
Anzeige
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 13:24:00
Jakob
Merci, super Sache. Ich hätte noch eine kleine Anpassung.
Wenn möglich, sollte alles erst ab in Zeile 2 kopiert und anschließend auch gecleared werden, sodass ich die Möglichkeit habe, Überschriften zu setzen.
VIELEN VIELEN DANK auf jeden Fall schonmal!
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 15:30:03
Matthias
Moin!
So startet jetzt alles in Zeile 2 (also in Tabelle1 und Tabelle2)#
Sub teilstring_suche()
Dim Daten As Range
Dim teilwörter
Dim ergebnis As Object
Dim zeile As Long
Dim treffer As Object
Dim teffer1
teilwörter = Tabelle2.Range(Tabelle2.Cells(2, 1), Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows. _
Count, 1).End(xlUp).Row, 1))
Set Daten = Tabelle1.Range(Tabelle1.Cells(2, 7), Tabelle1.Cells(Tabelle1.Cells(Tabelle1.Rows. _
Count, 7).End(xlUp).Row, 7))
Set ergebnis = CreateObject("Scripting.Dictionary")
'löscht die Spalte ab Zeile 2
If Tabelle2.Cells(2, 2)  "" Then Tabelle2.Range("B2:B" & Tabelle2.Cells(Tabelle2.Rows.Count,  _
2).End(xlUp).Row).ClearContents
For zeile = 1 To UBound(teilwörter, 1)
Set treffer = Daten.Find(teilwörter(zeile, 1), , , xlPart)
If Not treffer Is Nothing Then
treffer1 = treffer.Address
Do
If Not ergebnis.exists(treffer.Value) Then ergebnis.Add treffer.Value, 1
Set treffer = Daten.FindNext(treffer)
Loop While Not treffer Is Nothing And treffer.Address  treffer1
End If
Next
Tabelle2.Cells(2, 2).Resize(ergebnis.Count) = Application.Transpose(ergebnis.keys)
End Sub

VG
Anzeige
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 16:06:36
Jakob
Perfekt, läuft super schnell durch. Vielen Dank!
AW: Teilstring in Zellen suchen und Zellinhalt kopiere
18.07.2018 08:40:57
Jakob
Hallo Matthias,
vielen Dank für das schnelle Feedback!
Funktioniert super.
Da sich die Stichwörter ändern, würde ich es jetzt noch mit einem Start Button und leeren des Zielbereichs erweitern:
Tabelle2.Range ("B").End(xlUp).clear
Leider wirft er mir einen Lafuzeitfehler 1004.
Viele Grüße

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige