Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filtereistellung mit IfThenElse
#1
Hallo Excel Forum !

Wende mich nochmal an euch, habe ein Problem mit dem Filtern in
einer Listbox.
Versuche mit IF (Wenn in einem Textfeld in der Listbox nix steht) THEN
(Lade normal in die Listbox ein) was Funktioniert
ELSE
(Filter nach Eingabe Textfeld) Funktioniert nicht
ENDIF

In der Quelltabelle wird der Filter Angewendet, nur nicht in der Listbox.

Hab mir unendlich viele TUTs angesehen über IfThenElse, Case, Schleifen, u.s.w.
mir Qualmt der Kopf, aber anwenden konnte ich nichts.

werde eine Beispieldatei anhängen.

LG Gerhard


Angehängte Dateien
.xlsm   Beispieldatei_02_1.xlsm (Größe: 76,41 KB / Downloads: 4)
Antwortento top
#2
Hallöchen,

filtere die Daten im Blatt mit Spezialfilter an eine andere Stelle und nimm diesen Bereich als Datenquelle für die Listbox.
Alternativ fülle die Listbox mit den gefilterten Daten und nimm nicht RowSource.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hallo Schauan
Anstelle von Rowsource, gibt es denn eine Alternative ?

LG
Antwortento top
#4
Hallöchen,

ja, auch mit VBA Smile Hier mal ein Ansatz.
Die letzte Zeile habe ich anhand Spalte A festgestellt. Da sollte in dieser Spalte dann auch unter der Tabelle nix mehr stehen, ansonsten nimmst Du eine andere. Falls Du Deinen ersten Teil mit der RowSource lassen willst, dann müsstest Du in diesem Teil noch selbige auf = "" setzen.

Kannst aber eventuell auch generell diesen Code nehmen und weitere Bedingung wie mit dem nix dazu schreiben.
Im Prinzip If Rows(lCnt).EntireRow.Hidden = False And Zelle = Nix And Irgendwo = Irgendwas Smile Then ...
 
Code:
Private Sub UserForm_Initialize()
'Variablendeklarationen Long
Dim lRow&, lCnt&, lLastRow&
'mit dem aktiven Blatt
With ActiveSheet
 'Anzahl Spalten festlegen
 ListBox1.ColumnCount = 3
 'lLastRow lRow feststellen
 lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
 'Zeilenzahler fuer Listbox auf 0 setzen
 lRow = 0
 'Schleife ueber alle Tabellenzeilen
 For lCnt = 1 To lLastRow
   'Wenn die Tabellenzeile nicht ausgeblendet ist, dann
   If Rows(lCnt).EntireRow.Hidden = False Then
     'Tabeleneintraege uebernehmen
     ListBox1.AddItem .Cells(lCnt, 1)
     ListBox1.List(lRow, 1) = .Cells(lCnt, 2)
     ListBox1.List(lRow, 2) = .Cells(lCnt, 3)
     lRow = lRow + 1
   'Ende Wenn die Tabellenzeile nicht ausgeblendet ist, dann
   End If
 'Ende Schleife ueber alle Tabellenzeilen
 Next
End With
End Sub
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Foregner
Antwortento top
#5
Danke erstmal !
Werd mich gleich damit befassen, und Versuchen es umzusetzen.

LG
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste