HERBERS Excel-Forum - das Archiv

Thema: Suche & Listbox

Suche & Listbox
Xelleron(Dennis)

Hallo zusammen,
versuche gerade über eine UF nach 2 Kriterien zu suchen (Ort ("D:D"), Tätigkeit("L:L")).
Wenn beide Kriterien erfüllt sind, sollten die Werte (in "A") der jeweiligen Zeile in einer Listbox angezeigt werden.
Per Doppelklick sollen die Werte (von "A" - "L" )dann in einer Maske angezeigt werden.
Über die Suche finde ich irgendwie keinen richtigen Ansatz. Wer kann helfen?
Gruß
Dennis

AW: Suche & Listbox
fcs

Hallo Dennis,
hier eine kleine Beispieldatei.
https://www.herber.de/bbs/user/52964.xls
Gruß
Franz

AW: Suche & Listbox
Xelleron(Dennis)

Hallo Franz,
fast so wie ich es gemeint habe! Wie baue ich es eine, das mir in der Listbox alle Ergebnisse angezeigt werden, und nicht nur die erste Zeile, die übereinstimmt?
Gruß
Dennis

AW: Suche & Listbox
fcs

Hallo dennis,
verstehe deine Frage nicht. Die Prozedur, die hinter dem Button "Liste aktualisieren" angelegt ist, sucht gemäß Kriterien und der Vergleichs-Funktion die zutreffenden Einträge in allen Zeilen und listet diese dann.
Falls du mehr Einträge erwartest, als angezeigt werden, dann stimmen evtl. die Daten-Typen in der Tabelle (Zahl oder Text) nicht mit denen in der Vergleichs-Routine überein. Die Textboxen mit den Kriterien liefern als Ergebnis -wie der Name schon andeutet- einen Text. Sind in der Vergleichsspalte, wie in meinem Beispiel in Spalte D, Zahlen, dann muss für den Vergleich der Inhalt der Textbox in eine Zahl umgewandelt werden oder umgekehrt.
Du muss also prüfen, ob die If-Bedingungen im folgenden Abschnitt für deine Daten korrekt sind.
Außerdem bin ich in meinem Beispiel davon ausgegangen, dass in Spalte 1(A) in jeder Zeile ein Eintrag steht, so dass in der For-Anweisung die letzte Daten-Zeile korrekt berechnet werden kann.
Starte das Formular im Schritt-Modus (F8 im VBA-Editor, immer mit F8 weiter) dann kannst prüfen, bei welchen Werten in der Tabelle das Ergebnis nicht nach deinen Vorstellungen ist und die If-Bedingung anpassen.
Gruß
Franz


Private Sub CommandButton3_Click()
'Liste Aktualisieren
Dim lngZeile As Long, lngSpalte As Long, ListZeile As Long, arrTemp()
With wksData
ListZeile = -1
ReDim ListData(0 To 12, 0 To 0)
'Daten gemäß Kriterien für Spalte D und L in Datenarray schreiben
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Werte in Spalte 4 (D) und 12 (L) mit den Kriterien vergleichen
If .Cells(lngZeile, 4) = CDbl(Me.tbox_Kriterium1.Value) _
And .Cells(lngZeile, 12) Like Me.tbox_Kriterium2.Value Then  '### Zeile(n) prüfen
ListZeile = ListZeile + 1
ReDim Preserve ListData(0 To 12, 0 To ListZeile)
For lngSpalte = 1 To 12
ListData(lngSpalte - 1, ListZeile) = .Cells(lngZeile, lngSpalte).Value
Next
'Merken der Zeile in der Datentabelle in Zeile 12 des Arrays
ListData(12, ListZeile) = lngZeile
End If
Next
End With


AW: Suche & Listbox
Xelleron(Dennis)

Sorry, hatte mich vertan! Bin in der Zeile verrutscht und hatte mich gewundert, das nur ein Eintrag dargestellt wird. So wie es ist, ist es perfekt.
Vielen Dank noch mal