Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchfunktion

Suchfunktion
07.03.2008 06:16:00
amintire
Guten morgen alle zusammen.
Ich hab hier einen Code für eine Suchfunktion. Funktioniert auch, allerdings sucht der genau nach dem Wort, würde es aber gern so wollen dass er auch ähnliche begriffe sucht.

Sub Suchen()
Dim rng As Range
Dim sFind As String
sFind = InputBox( _
prompt:="Suchbegriff:", _
Default:="")
If sFind = "" Then Exit Sub
Set rng = Columns(2).Find( _
what:=sFind, lookat:=xlWhole, LookIn:=xlValues)
'Columns (2) bedeutet zweite Spalte in der Tabelle, in der wird gesucht
If rng Is Nothing Then
Beep
MsgBox "Der Film ist leider nicht vorhanden!"
Exit Sub
End If
Rows(rng.Row).Select
End Sub


Gruß amintire

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

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion
07.03.2008 07:16:00
Tino
Hallo,
versuche es mal mit
Set rng = Columns(2).Find( _
what:=sFind, LookAt:=xlPart, LookIn:=xlValues)
Gruß
Tino

AW: Suchfunktion
07.03.2008 08:37:00
amintire
Hallo Tino,
vielen Dank, funktioniert.
Was aber wenn es mehrere Namen gibt die gefunden werden können?
Gruß

AW: Suchfunktion
07.03.2008 14:31:24
Tino
Hallo,
so müsste es gehen.

Sub Suchen()
Dim rng As Range
Dim sFind As String, AnZ As Long, a As Long
Dim Spa As String
sFind = InputBox( _
prompt:="Suchbegriff:", _
Default:="")
If sFind = "" Then Exit Sub
'Zähle sFind in Spalte B
AnZ = Application.WorksheetFunction.CountIf(Columns(2), "*" & sFind & "*")
If AnZ = 0 Then 'Abbruch bei 0 Treffer
Beep
MsgBox "Der Film ist leider nicht vorhanden!"
Exit Sub
End If
'Suche erste sFind in Spalte B
Set rng = Columns(2).Find( _
what:=sFind, LookAt:=xlPart, LookIn:=xlValues, after:=Range("B1"))
Spa = Spa & rng.Row & ":" & rng.Row & ", " 'Adresse Merken
If AnZ > 1 Then 'mehr als 1 treffer suche weiterer
For a = 1 To AnZ - 1
Set rng = Columns(2).FindNext(after:=rng)
Spa = Spa & rng.Row & ":" & rng.Row & ", " 'Adresse Merken
Next a
End If
Spa = Left(Spa, Len(Spa) - 2) 'lösche rechten Rest aus Adresse
Range(Spa).Select 'Selektiere gefundene Zeilen
MsgBox "Der Film wurde " & AnZ & " mal gefunden"
End Sub


Gruß
Tino

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige