Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox mit gefilterten Daten füllen

Listbox mit gefilterten Daten füllen
27.02.2008 17:13:51
Ratisbona
Hallo zusammen,
ich habe ein Makro das mir zuerst einen Autofilter setzt, und dann nach meinen Eingaben filtert.
Nun möchte ich nur die Namen in meine Listbox haben, die mir der Autofilter noch übrig lässt.
Im Excelsheet siehts prima aus. Wenn ich filtere nach Alter (z.B. "30", habe ich z.B. nur noch 10 Namen auf dem Sheet stehen, aber in die Listbox wirft er mir trotzdem alle Namen rein. Wo ist mein Fehler?
Alex

Private Sub CommandButton3_Click()
If ComboBox1.Value = "" Then
MsgBox ("Filter Nr.2 fehlt!"), vbCritical
Exit Sub
End If
Dim f As Variant
f = Filter.Filter1.Value
Dim c As Variant
c = Filter.ComboBox1.Value
Dim i As Integer
Filterergebnis.TextBox1.Text = Filter.Filter1.Value
Filterergebnis.TextBox2.Text = Filter.ComboBox1.Value
'Autofilter aktivieren und auswählen
Selection.AutoFilter _
Field:=3, Criteria1:=Filter.ComboBox1.Value
'Füllen der Listbox mit entsprechenden Namen
Sheets("Anamnese").Activate
i = ActiveSheet.UsedRange.Rows.Count
With Filterergebnis.ListBox1
.ColumnCount = 3
.ColumnHeads = True
.RowSource = "Anamnese!B2:B" & i
.ColumnWidths = "7cm;0cm;0cm"
End With
Filterergebnis.Show
End Sub


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit gefilterten Daten füllen
27.02.2008 17:51:00
Sven
Hi,
wenn du RowSource verwenden willst/musst, warum auch immer,
geht es nur, indem du die sichtbaren Zellen in z.B. ein anderes Blatt kopierst
in dich in RowSorce darauf beziehst, ansonsten nur mittels Array, Collection
oder AddItem.
Wenn du auf die Columnheads bestehst, geht es ohnehin nur mit RowSource.
Lösungen dazu findest du reichlich in der Recherche.
mfg Sven

AW: Listbox mit gefilterten Daten füllen
27.02.2008 17:54:00
Frederic
Hi Alex,
in der Listbox kriegst du immer ALLES rein, denn sie macht ja nichts anderes, als eine zugeteilte Range einzulesen, dazu gehören auch "Ausgeblendete" Zeilen.
Tipp:
Mach eine Textbox in deinem UF (da wo die ListBox drin ist) - dann hättest du die Möglichkeit von einer "Suchfunktion".
Gruß
Frederic

Anzeige
AW: Listbox mit gefilterten Daten füllen
27.02.2008 20:09:09
Ratisbona
Wie genau meinst Du das mit der TextBox? Das verstehe ich grad nicht, ich glaub ich steh aufm schlauch...
Alex

AW: Listbox mit gefilterten Daten füllen
28.02.2008 07:46:00
Frederic
Hi Alex,
anbei mein Codebeispiel (ob ComboBox od. Listbox ist gleich, du musst es dann nur anpassen):

Private Sub ComboBox1_Change()
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select
Dim arr() As Variant
Dim Index As Integer
Dim iCount As Integer
Dim X As Long
X = Sheets("Liste").Cells(Rows.Count, "A").End(xlUp).Row
If ComboBox1.Value = "" Then
ListBox1.RowSource = "A1:K" & X  'Bereich definieren
Exit Sub
End If
ListBox1.RowSource = ""
ListBox1.Clear
iCount = 0
For Index = 11 To X
' Cells(Index anpassen an die gewünschte Spalte, in der gesucht werden soll! Hier ist es Spalte  _
K
If LCase(Left(Cells(Index, 11), Len(ComboBox1))) = LCase(ComboBox1) Then
If Sheets("Liste").Cells(Index, 11)  "" Then
On Error Resume Next
ReDim Preserve arr(9, iCount)
arr(0, iCount) = Cells(Index, 1).Value
arr(1, iCount) = Cells(Index, 2).Value
arr(2, iCount) = Cells(Index, 3).Value
arr(3, iCount) = Cells(Index, 4).Text  'Formatierung wird aus Tabelle1 in  _
ListBox importiert
arr(4, iCount) = Cells(Index, 5).Value
arr(5, iCount) = Cells(Index, 6).Value
arr(6, iCount) = Cells(Index, 7).Value
arr(7, iCount) = Cells(Index, 8).Text
arr(8, iCount) = Cells(Index, 9).Text
arr(9, iCount) = Cells(Index, 10).Value
arr(10, iCount) = Cells(Index, 11).Value
iCount = iCount + 1
ListBox1.Column = arr
ListBox1.Column = arr
End If
End If
Next
'Sheets("Tabelle1").Range("AA1").Value = ComboBox1
End Sub


Gruß
Frederic

Anzeige
AW: Listbox mit gefilterten Daten füllen
28.02.2008 18:06:00
Ratisbona
Hi,
danke schon mal wieder für deine super Hilfe
habe das ganze nur an meine Sheets angepasst.
Aber er trägt mir keine Werte in meine Listbox ein?
Müsste er jetzt nicht nach den Werten suchen die ich in die ComboBox2 eintrage?
Und kann ich ihm sagen, das er die Spalte als Suchspalte nimmt, die ich in CombBox1 eintrage? Evtl, sogar wenn nur einen Namen, sprich das was in der ersten Zeile steht als Eintrag nehme?
Alex

Private Sub CommandButton3_Click()
If ComboBox2.Value = "" Then
MsgBox ("Filter Nr.2 fehlt!"), vbCritical
Exit Sub
End If
Filterergebnis.TextBox1.Value = Filter.ComboBox1.Value        'Eintrag in TextBox schreiben
Filterergebnis.TextBox2.Value = Filter.ComboBox2.Value        'Eintrag in TextBox schreiben
Sheets("Anamnese").Visible = True
Sheets("Anamnese").Select
Dim arr() As Variant
Dim Index As Integer
Dim iCount As Integer
Dim X As Long
X = Sheets("Anamnese").Cells(Rows.Count, "A").End(xlUp).Row
If ComboBox1.Value = "" Then
Filterergebnis.ListBox1.RowSource = "A1:D" & X  'Bereich definieren
Exit Sub
End If
Filterergebnis.ListBox1.RowSource = ""
Filterergebnis.ListBox1.Clear
iCount = 0
For Index = 11 To X
' Cells(Index anpassen an die gewünschte Spalte, in der gesucht werden soll! Hier ist es  _
Spalte _
C
If LCase(Left(Cells(Index, 3), Len(ComboBox2))) = LCase(ComboBox2) Then
If Sheets("Anamnese").Cells(Index, 3)  "" Then
On Error Resume Next
ReDim Preserve arr(9, iCount)
arr(0, iCount) = Cells(Index, 1).Value
arr(1, iCount) = Cells(Index, 2).Value
arr(2, iCount) = Cells(Index, 3).Value
arr(3, iCount) = Cells(Index, 4).Text  'Formatierung wird aus Tabelle1 in _
ListBox importiert
arr(4, iCount) = Cells(Index, 5).Value
arr(5, iCount) = Cells(Index, 6).Value
arr(6, iCount) = Cells(Index, 7).Value
arr(7, iCount) = Cells(Index, 8).Text
arr(8, iCount) = Cells(Index, 9).Text
arr(9, iCount) = Cells(Index, 10).Value
arr(10, iCount) = Cells(Index, 11).Value
iCount = iCount + 1
Filterergebnis.ListBox1.Column = arr
Filterergebnis.ListBox1.Column = arr
End If
End If
Next
Filterergebnis.Show
'Sheets("Anamnese").Range("AA1").Value = ComboBox1
End Sub


Anzeige
AW: Listbox mit gefilterten Daten füllen
29.02.2008 08:59:59
Frederic
Wie ist denn die Range in deinem Sheet (von spalte bis spalte) und in welcher Spalte soll er suchen?
Das wäre wichtig um die weiterhelfen zu können.
Greetz.
Frederic

AW: Listbox mit gefilterten Daten füllen
29.02.2008 09:10:18
Ratisbona
Hi,
also es sieht folgendermassen aus.
Das Sheet hat in Tabelle 1 ca. 20 Oberbegriffe (A1 - K1)
Nun möchte ich das er mir mit der ComboBox1 in die passende Spalte springt, z.B. definieren, das Alter = Spalte C und dann nach dem Begriff den ich in ComboBox2 eingebe (oder auswähle) sucht. Dann soll er mir alle Namen die zu diesem Begriff passen anzeigen. Die Namen stehen in Spalte B.
Im Prinzip ist das ja nichts anderes, als wie wenn ich im Sheet den Autofilter aktivieren und da nach einem bestimmten Wert in Spalte "Alter" filtere.
Ist das zu machen?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige