Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Suchfunktion mit InStr

Suchfunktion mit InStr
15.06.2016 16:35:46
Kai
Hallo zusammen,
ich brauche ein Makro, welches den Text aus einer Textbox als Suchbegriff nimmt und alle Zeilen löscht, in denen der Begriff nicht vorkommt. Ich möchte mit InStr arbeiten, da der Suchbegriff auch nur ein Teil des Zelleninhalts sein kann.
BSP:
Teilenummer Lagerplatz Kunde
A1-ABC-1234 C3 Meyer
Wenn der Suchbegriff "XYZ" wäre, sollte die Beispielzeile gelöscht werden und die Schleife die nächste Zeile durchsuchen, wenn der Suchbegriff "C3" wäre, soll die Zeile bestehen bleiben und die Schleife dann ebenfalls zur nächsten Zeile springen.
Die besonderen Anforderungen hier sind:
- Es soll nicht nur eine Spalte durchsucht werden, sondern mind.10
- Es soll reichen, wenn ein Teil des Zellwertes dem Suchbegriff entspricht, um die Zeile nicht zu löschen
(Ganz ähnlich wie die Stichwortsuche in Excel)
Ich bin gespannt auf Eure Antworten!
MfG
Kai

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion mit InStr
15.06.2016 16:57:57
Fennek
Hallo,
für die Suche nach "Suchbegriff nicht enthalten" gibt es Alternativen:
Die ganze Spalte in ein ein-dimensionales Array (ar) übergeben, dann
af = filter(ar, "Suchwort", false)
Fertig!
mfg

AW: finden?
16.06.2016 10:03:05
Fennek
Hallo,
wenn man den Suchbereich auf eine Zeile einschränkt, kann sowohl mit der Arbeitsblatt-Funktion "suchen" als auch mit dem entsprechenden vba-Befehl gearbeitet werden.
mfg

Filtern und n.v. Löschen
16.06.2016 15:13:16
Michael
Hi zusammen,
das geht mit ein paar Zeilen:
Option Explicit
Sub machen()
Dim maxZ&, z&, s&, a, k
Dim suchNach$, r As Range, r2 As Range
suchNach = "2"
Set r = Range("A1").CurrentRegion
r.Offset(, r.Columns.Count).Resize(, 1).Value = 0
k = r.Offset(, r.Columns.Count).Resize(, 1)
a = r
For z = 2 To UBound(a)
For s = 1 To UBound(a, 2)
If InStr(1, a(z, s), suchNach, vbTextCompare) > 0 Then
'oder, wenn Groß- & Kleinschreibung beachtet werden soll:
'   If InStr(a(z, s), suchNach) > 0 Then
k(z, 1) = z
Exit For
End If
Next
Next
Stop ' DIESE Zeile bitte löschen **********
r.Offset(, r.Columns.Count).Resize(, 1) = k
Set r2 = r.Resize(, r.Columns.Count + 1)
r2.RemoveDuplicates Columns:=r2.Columns.Count, Header:=xlNo
r.Offset(, r.Columns.Count).Resize(, 1).Clear
End Sub
Die Datei: https://www.herber.de/bbs/user/106285.xlsm
Schöne Grüße,
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige