Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Suche & Listbox

Betrifft: Suche & Listbox von: Xelleron(Dennis)
Geschrieben am: 09.06.2008 12:48:02

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

  

Betrifft: AW: Suche & Listbox von: fcs
Geschrieben am: 10.06.2008 00:22:53

Hallo Dennis,

hier eine kleine Beispieldatei.
https://www.herber.de/bbs/user/52964.xls

Gruß
Franz


  

Betrifft: AW: Suche & Listbox von: Xelleron(Dennis)
Geschrieben am: 10.06.2008 08:43:00

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


  

Betrifft: AW: Suche & Listbox von: fcs
Geschrieben am: 10.06.2008 09:32:00

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




  

Betrifft: AW: Suche & Listbox von: Xelleron(Dennis)
Geschrieben am: 10.06.2008 10:35:56

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


 

Beiträge aus den Excel-Beispielen zum Thema "Suche & Listbox"