Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
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

Listbox nach Kriterien befüllen

Listbox nach Kriterien befüllen
22.12.2020 16:58:38
Stephan
Guten Abend,
ich habe folgendes Problem und hoffe auf eure Hilfe. Ich habe eine Datei mit 2 Tabellenblättern.
Auf dem ersten Tabellenblatt sind ein paar Button um verschiedene Userformen (Beratung eintragen, Beratung bearbeiten, Nachfassaktion, Beartung anzeigen) aufzurufen. Im zweiten Tabellenblatt sind Daten gespeichert (Spalte A - Spalte AB).
Bei der Userform "Nachfassaktion" befindet sich eine Listbox die die Daten aus dem Tabellenblatt läd. Das funktioniert alles sehr klasse. Nun hätte ich es aber gern so, dass die Listbox nur die Datensätze anzeigt die die folgenden Kriterien erfüllt.
Die Listbox soll nur Datensätze anzeigen die Spalte E ein "X" haben und Spalte Y und AA "leer" sind.
Vielleicht hätte jemand von Euch eine Idee und kann mir helfen. Vielen Dank im voraus.
Stephan
  • Private Sub UserForm_initialize()
    CommandButton3.Enabled = False
    CommandButton5.Enabled = False
    Dim lZeile As Long
    Dim lZeileMaximum As Long
    Dim i As Integer
    'Alle TextBoxen leer machen
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    Me.Controls("TextBox" & i) = ""
    Next i
    ListBox1.Clear 'Liste leeren
    '4 Spalten einrichten
    'Spalte 1: Zeilennummer des Datensatzes
    'Spalte 2: Name (Spalte A)
    'Spalte 3: Telefon (Spalte B)
    'Spalte 4: E-Mail (Spalte C)
    ListBox1.ColumnCount = 8
    'Spaltenbreiten der Liste anpassen (0=ausblenden, nichts=automatisch)
    '";;;"
    ListBox1.ColumnWidths = "0;200;100;80;200;50;90;50"
    'Feste Breiten: ListBox1.ColumnWidths = "0;;;"
    'Um eine Schleife für alle Datensätze zu erhalten benötigen wir die letzte verwendete Zeile
    lZeileMaximum = Tabelle1.UsedRange.Rows.Count 'Benutzer Bereich auslesen
    For lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE To lZeileMaximum
    'Nur wenn die Zeile benutzt / nicht leer ist, zeigen wir etwas an:
    If IST_ZEILE_LEER(lZeile) = False Then
    'Spalte 1 der Liste mit der Zeilennummer füllen
    ListBox1.AddItem lZeile
    'Spalten 2 bis 4 der Liste füllen
    ListBox1.List(ListBox1.ListCount - 1, 1) = CStr(Tabelle1.Cells(lZeile, 1).Text)
    ListBox1.List(ListBox1.ListCount - 1, 2) = CStr(Tabelle1.Cells(lZeile, 2).Text)
    ListBox1.List(ListBox1.ListCount - 1, 3) = CStr(Tabelle1.Cells(lZeile, 3).Text)
    ListBox1.List(ListBox1.ListCount - 1, 4) = CStr(Tabelle1.Cells(lZeile, 4).Text)
    ListBox1.List(ListBox1.ListCount - 1, 5) = CStr(Tabelle1.Cells(lZeile, 5).Text)
    ListBox1.List(ListBox1.ListCount - 1, 6) = CStr(Tabelle1.Cells(lZeile, 16).Text)
    ListBox1.List(ListBox1.ListCount - 1, 7) = CStr(Tabelle1.Cells(lZeile, 15).Text)
    End If
    Next lZeile
    End Sub
    

    Private Function IST_ZEILE_LEER(ByVal lZeile As Long) As Boolean
    Dim i As Long
    Dim sTemp As String
    'Hilfsvariable initialisieren
    sTemp = ""
    'Um zu erkennen, ob eine Zeile komplett leer/ungebraucht ist
    'verketten wir einfach alle Spalteninhalte der Zeile miteinander.
    'Ist die zusammengesetzte Zeichenkette aller Spalten leer,
    'ist die Zeile nicht genutzt...
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    sTemp = sTemp & Trim(CStr(Tabelle1.Cells(lZeile, i).Text))
    Next i
    'Rückgabewert festlegen
    If Trim(sTemp) = "" Then
    'Die Zeile ist leer
    IST_ZEILE_LEER = True
    Else
    'Die Zeile ist mindestens in einer Spalte gefüllt
    IST_ZEILE_LEER = False
    End If
    End Function
    

  • https://www.herber.de/bbs/user/142506.xlsm

    13
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Listbox nach Kriterien befüllen
    22.12.2020 18:30:35
    onur
    
    If Cells(lZeile, 5) = "X" And Application.CountA(Range("Y" & lZeile & ":AA" & lZeile)) = 0 Then
    

    IST_ZEILE_LEER brauchst du nicht, da die Zeile sowieso nicht leer sein kann, wenn da in Spalte E ein "X" steht.
    Wenn du mal später doch brauchst, nimm das:
    Function IST_ZEILE_LEER(ByVal Zeile As Long) As Boolean
    IST_ZEILE_LEER = Application.CountA(Rows(Zeile)) = 0
    End Function
    

    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:24:55
    Stephan
    Vielen Dank onur für deine Antwort. Leider zeigt die Listbox jetzt überhaupt keinen Datensatz an obwohl Sie eigentlich einen anzeigen müsste oder ich habe es an die falsche Stelle eingefügt.
    Anzeige
    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:27:21
    onur
    
    For lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE To lZeileMaximum
    'Nur wenn die Zeile benutzt / nicht leer ist, zeigen wir etwas an:
    If Cells(lZeile, 5) = "X" And Application.CountA(Range("Y" & lZeile & ":AA" & lZeile)) = 0  _
    Then
    .....
    

    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:36:24
    Stephan
    Da hatte ich es auch eingetragen aber es wird nichts angezeigt, die Listbox bleibt leer
    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:43:29
    onur
    Dann solltest du mal die Datei posten.
    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:48:58
    Stephan
    Die sollte am ersten Post von mir angehängt sein.
    AW: Listbox nach Kriterien befüllen
    22.12.2020 19:59:55
    onur
    Mein Fehler: ich habe "Y bis AA leer" gelesen.
    So ist richtig:
    For lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE To lZeileMaximum
    If Cells(lZeile, 5) = "X" And Cells(lZeile, 25) = "" And Cells(lZeile, 27) = "" Then
    

    DEIN Fehler: Es ist in keiner Zeile Y und AA leer.
    Anzeige
    AW: Listbox nach Kriterien befüllen
    22.12.2020 20:33:59
    Stephan
    Die ListBox bleibt trotzdem leer
    AW: Listbox nach Kriterien befüllen
    22.12.2020 20:34:53
    onur
    Poste doch mal die JETZIGE Version.
    AW: Listbox nach Kriterien befüllen
    22.12.2020 21:43:36
    Stephan
    Vielen vielen Dank onur!!!! Jetzt funktioniert es. Super
    Gerne !
    22.12.2020 21:44:26
    onur

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige