Anzeige
Archiv - Navigation
1028to1032
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

Problem mit Listboxsortierung

Problem mit Listboxsortierung
09.12.2008 12:48:00
A.Franz
Hallo...,
ich habe ein großes Problem mit einer Listbox und hoffe das mir jemand helfen kann, da ich einfach keine Lösung finde.Also..ich habe eine ListBox mit 5-Spalten die ihre Daten per Row-Source aus einer Tabelle A1:E bezieht.Neben der ListBox habe ich eine TextBox in der ich als Suchkriterium Auftrags-Nummern von Werkstattaufträgen eingeben kann, damit mir nur diese aufgelistet werden.Klingt einfach und funktionierte bisher auch ganz gut.Nun befinden sich aber ab Spalte AF die gleichen Werte wie A1:E nochmal nach Namen sortiert und seither funktioniert die ListBox nich mehr richtig.Es scheint als ob der Suchbegriff in der TextBox nicht nur den Bereich A1:E abfragt, sondern die ganzen Zeilen abgefragt werden und durch die doppelten Einträge ab Spalte AF das ganze durcheinander kommt..?!!
Da ich noch nicht sehr erfahren bin im Bereich VBA, hoffe ich wirklich das mir jemand hilft.Damit das ganze einfacher zu verstehen ist nachfolgend mein benutzter Code sowie eine Beispieldatei.Als Suchbegriff bitte dann mal z.B die WA-Nummer 228984 eingeben.Die ist in der Tabelle vorhanden, wird aber beim Suchen in der ListBox nicht mehr angezeigt?!

Private Sub TextBox1_Change()
Dim LoI As Long
Dim LoZeile As Long
Dim RaFound As Range
Application.ScreenUpdating = False
If TextBox1 = "" Then
ListBox1.RowSource = "A2:E" & LoLetzte
Else
ListBox1.RowSource = ""
With Worksheets("Tabelle1")
Set RaFound = .Cells.Find(TextBox1 & "*", .Range("A1"), , xlWhole, , xlNext)
If Not RaFound Is Nothing Then
For LoI = RaFound.Row To LoLetzte
If UCase(Left(.Cells(LoI, 1), Len(TextBox1))) = UCase(TextBox1) Then
ListBox1.AddItem .Cells(LoI, 1).Text
ListBox1.List(LoZeile, 1) = .Cells(LoI, 2).Text
ListBox1.List(LoZeile, 2) = .Cells(LoI, 3).Text
ListBox1.List(LoZeile, 3) = .Cells(LoI, 4).Text
ListBox1.List(LoZeile, 4) = .Cells(LoI, 5).Text
LoZeile = LoZeile + 1
Else
Exit For
End If
Next
End If
End With
End If
Set RaFound = Nothing
Application.ScreenUpdating = True
End Sub


https://www.herber.de/bbs/user/57481.xls
Für jede Hilfe vorab vielen Dank....!!!
Gruß Andre

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

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Listboxsortierung
09.12.2008 13:02:26
Beverly
Hi Andre,
versuche es mal so:

Set RaFound = .Columns(1).Find(TextBox2 & "*", .Range("A1"), , xlWhole, , xlNext)




AW: Problem mit Listboxsortierung
09.12.2008 13:08:00
Luschi
Hallo Andre,
Deine Vermutung ist richtig. Mit dieser Vba-Zeile:
Set RaFound = .Cells.Find(TextBox1 & "*", .Range("A1"), , xlWhole, , xlNext)
wird in allen Zellen der Tabelle gesucht. Ändere dies so ab:
Set RaFound = .Range(""A2:E" & LoLetzte").Find(TextBox1 & "*", .Range("A1"), , xlWhole, , xlNext)
Jetzt wird nur noch in dem Bereich gesucht, der dem Datenbereich der Listbox1 entspricht.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Problem mit Listboxsortierung
09.12.2008 13:13:01
Wenderhold
hi
tja, wenn man zu faul (sorry!) ist, die einzelnen schelifen konstrukte korrekt
mit einem einzug zu versehen, dann passiert da sschon mal

Private Sub TextBox1_Change()
Dim LoI As Long
Dim LoZeile As Long
Dim RaFound As Range
Application.ScreenUpdating = False
If TextBox1 = "" Then
ListBox1.RowSource = "A2:E" & LoLetzte
Else
ListBox1.RowSource = ""
With Worksheets("Tabelle1")
Set RaFound = .Cells.Find(TextBox1 & "*", .Range("A1"), , xlWhole, , xlNext)
If Not RaFound Is Nothing Then
For LoI = RaFound.Row To LoLetzte
If UCase(Left(Sheets(1).Cells(LoI, 1), Len(TextBox1))) = UCase(TextBox1)  _
Then
ListBox1.AddItem .Cells(LoI, 1).Text
ListBox1.List(LoZeile, 1) = .Cells(LoI, 2).Text
ListBox1.List(LoZeile, 2) = .Cells(LoI, 3).Text
ListBox1.List(LoZeile, 3) = .Cells(LoI, 4).Text
ListBox1.List(LoZeile, 4) = .Cells(LoI, 5).Text
LoZeile = LoZeile + 1
rem die nachfolgenden  2 zeilen auskommentieren
'                    Else
'                        Exit For
End If
Next LoI
End If
End With
End If
Set RaFound = Nothing
Application.ScreenUpdating = True
End Sub


und alles gut !
greeze
e

Anzeige
AW: Problem mit Listboxsortierung
09.12.2008 13:24:00
A.Franz
Hallo Karin...,
mann super, das ganze funktioniert jetzt wieder :-)
Vielen Dank für die schnelle Hilfe
lg.Andre

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige