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