Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
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
Wert suchen und in Listbox ausgeben
Timo
Hallo zusammen,
mit folgendem VBA-Code suche ich einen bestimmten Wert in einer Spalte und übergebe ihn und weitere Werte in eine Listbox.
Sub suchen()
Dim lng As Long
Dim i As Integer
i = 0
ListBox1.Clear
Sheets("Tabelle1").Activate
For lng = 2 To ActiveSheet.UsedRange.Rows.Count + 1
If InStr(LCase(Cells(lng, 1).Value), LCase(TextBox1.Value)) > 0 Then
ListBox1.AddItem Cells(lng, 1).Value
ListBox1.Column(1, i) = Cells(lng, 2).Value
ListBox1.Column(2, i) = Cells(lng, 3).Value
ListBox1.Column(3, i) = Cells(lng, 2).Row
i = i + 1
Else
End If
Next lng
End Sub
Jetzt ist es allerdings so, dass jeder Wert in der Spalte, in dem der gesuchte Wert vorkommt, in der Listbox angezeigt wird.
Bsp.: ich suche nach dem Wort "Haus"
In der Suchspalte stehen folgende Begriffe:
Haus
Haustür
Hauswand
Hausaufgaben
Jetzt werden alle 4 Begriffe in der Listbox angezeigt.
Wie muss ich meinen VBA-Code abändern, damit nur der gesuchte Wert angezeigt wird und nicht alle Werte, in denen Teile des gesuchten Wertes vorhanden sind? Gross- und Kleinschreibung sollten allerdings keine Rolle spielen.
Ich hoffe, ihr könnt mir helfen.
Vielen Dank und eine schönes Restwochenende...
Gruß Timo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert suchen und in Listbox ausgeben
01.05.2011 10:34:26
Hajo_Zi
Hallo Timo
If LCase(Cells(lng, 1))= LCase(TextBox1) Then

AW: Wert suchen und in Listbox ausgeben
01.05.2011 10:46:02
Josef

Hallo Timo,
probiers so.
Sub suchen()
  Dim rng As Range
  Dim strFirst As String
  ListBox1.Clear
  With Sheets("Tabelle1")
    Set rng = .Range("A2:A" & .Rows.Count).Find(What:=TextBox1, LookIn:=xlValues, _
      LookAt:=xlWhole, MatchCase:=False, after:=.Cells(.Rows.Count, 1))
    If Not rng Is Nothing Then
      strFirst = rng.Address
      Do
        ListBox1.AddItem rng.Value
        ListBox1.List(ListBox1.ListCount - 1, 1) = rng.Offset(0, 1).Value
        ListBox1.List(ListBox1.ListCount - 1, 2) = rng.Offset(0, 2).Value
        ListBox1.List(ListBox1.ListCount - 1, 3) = rng.Row
        
        Set rng = .Range("A2:A" & .Rows.Count).FindNext(rng)
      Loop While Not rng Is Nothing And strFirst <> rng.Address
    End If
  End With
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Wert suchen und in Listbox ausgeben
01.05.2011 10:53:34
Peter
Hallo Timo,
ich würde es so versuchen:
Cells(lng, 1).Value = Trim$(Cells(lng, 1).Value)
If Left(LCase(Cells(lng, 1).Value), Len(TEXTBOX1.Value)) = LCase(TEXTBOX1.Value) Then
wobei ich lieber die Find-Methode mit LookAt:=xlWhole verwenden würde, allein schon aus Performance Gründen.
Gruß Peter
AW: Wert suchen und in Listbox ausgeben
01.05.2011 16:52:54
Timo
Funktioniert alles super,
vielen Dank!!!
Gruß Timo

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige