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: 5)
Antworten 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-2019+365)
Antworten Top
#3
Hallo Schauan
Anstelle von Rowsource, gibt es denn eine Alternative ?

LG
Antworten 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-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Foregner
Antworten Top
#5
Danke erstmal !
Werd mich gleich damit befassen, und Versuchen es umzusetzen.

LG
Antworten Top
#6
Hallo Clever Excel Forum !

Melde mich erst jetzt wieder, da ich eine gefühlte Ewigkeit
versucht habe die Tipps umzusetzen.
Da ich jetzt auch ohne "RowSource" Arbeite, funktionieren einige
Sachen nicht mehr die vorher funktioniert haben.

Aber Irgendwie hinbekommen habe ich:

- Gefiltertes einlesen in die Listbox Funktioniert.
- Neuer Datensatz aus der Listbox in die Tabelle eintragen
funktiniert (Nur die Inteligente Tabelle macht ab und an
probleme, da die Formeln nicht übernommen werden)
- Sortieren und Filter rausnehmen bei Beenden Der Userform
Funftioniert.
- Combobox zur Auswahl des Filterkriteriums, mit verschiedenen
Daten"Tabellenblattabhänig"füllen Funktioniert.

Wo ich aber dran scheitere, das löschen eines Markierten Datensatz
in der Listbox.
Wenn da nochmal jemand Helfen würde, wäre Klasse.
Eine Bspl. Datei hänge ich an.
lg Gerhard


Angehängte Dateien
.xlsm   Beispieldatei_03.xlsm (Größe: 83,02 KB / Downloads: 1)
Antworten Top
#7
Hallo Gerhard,

da hilft meist auch die Überwachungsfunktion.
lbxDaten.List(lbxDaten.ListIndex)
bringt Dir laut Überwachung "2" --> das ist ein String.
In der Zelle steht die Zahl 2


Da das für Excel nicht dasselbe ist, kommt es nicht zum Löschen. Du könntest es z.B. mit

lbxDaten.List(lbxDaten.ListIndex) * 1

versuchen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Foregner
Antworten Top
#8
Funktioniert, Wäre ich so nie draufgekommen.....
Herzlichen Dank.
Antworten Top


Gehe zu:


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