28.04.2018, 13:31
Liebe Community
Ich verzweifle fast an der ListBox... Ich hoffe Ihr könnt mir weiterhelfen :)
Ausgangslage:
Ich habe ein UserForm mit einer Combobox, welches wenn dies ausgewählt wird soll es den Wert in einem Tabellenblatt suchen und anschliessend den gefundenen Wert inkl. 4 weitere Werte in der geleichen Spalte in die ListBox schreiben. Nun brauche ich gewisse Zeilen nicht welche jedoch die die Combobox Value enthalten ist. Darum möchte ich einen AutoFilter einbauen.
Ungefähr so...
Listbox
column 1 ¦ column 2 ¦ column 3 ¦ column 4 ¦ column 5 ¦
---------------------------------------------------------------------
Such erg. ¦ wert ¦ wert ¦ wert ¦ wert
¦ ¦
¦ ¦
¦ > Beim Column 2 möchte ich gerne einen filter, dass nur das angezeigt wird welches einen Wert enthält ?
> Hier möchte ich, dass es eindeutig den Wert sucht und findet? im Moment kommt alles was mit diesem Wert vorkommt. vom ganzen Tabellenblatt obwohl ich die range definiert habe
Mein Code sieht wie folgt aus:
Private Sub ComboBox1_change()
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim I As Integer ' Zeile
On Error Resume Next
I = 0
s = Trim(ComboBox1.Value) 'Sucheingabe über ComboBox1 steuern
If s = "" Then Exit Sub
ListBox2.Clear
With Worksheets("Bestellübersicht").Range("B:B")
Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
If Not Found Is Nothing Then
FirstAddress = Found.Address
ListBox2.ColumnCount = 5 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
Do
ListBox2.AddItem Found
ListBox2.List(I, 1) = Cells(Found.Row, 24)
ListBox2.List(I, 2) = Cells(Found.Row, 6)
ListBox2.List(I, 3) = Cells(Found.Row, 9)
ListBox2.List(I, 4) = Cells(Found.Row, 10)
Set Found = Cells.FindNext(after:=Found)
If Found.Address = FirstAddress Then Exit Do
I = I + 1
Loop
End If
End With
End Sub
Ich danke euch schon im Voraus für eure Hilfe.
Cheers rizzo91
Ich verzweifle fast an der ListBox... Ich hoffe Ihr könnt mir weiterhelfen :)
Ausgangslage:
Ich habe ein UserForm mit einer Combobox, welches wenn dies ausgewählt wird soll es den Wert in einem Tabellenblatt suchen und anschliessend den gefundenen Wert inkl. 4 weitere Werte in der geleichen Spalte in die ListBox schreiben. Nun brauche ich gewisse Zeilen nicht welche jedoch die die Combobox Value enthalten ist. Darum möchte ich einen AutoFilter einbauen.
Ungefähr so...
Listbox
column 1 ¦ column 2 ¦ column 3 ¦ column 4 ¦ column 5 ¦
---------------------------------------------------------------------
Such erg. ¦ wert ¦ wert ¦ wert ¦ wert
¦ ¦
¦ ¦
¦ > Beim Column 2 möchte ich gerne einen filter, dass nur das angezeigt wird welches einen Wert enthält ?
> Hier möchte ich, dass es eindeutig den Wert sucht und findet? im Moment kommt alles was mit diesem Wert vorkommt. vom ganzen Tabellenblatt obwohl ich die range definiert habe
Mein Code sieht wie folgt aus:
Private Sub ComboBox1_change()
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim I As Integer ' Zeile
On Error Resume Next
I = 0
s = Trim(ComboBox1.Value) 'Sucheingabe über ComboBox1 steuern
If s = "" Then Exit Sub
ListBox2.Clear
With Worksheets("Bestellübersicht").Range("B:B")
Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
If Not Found Is Nothing Then
FirstAddress = Found.Address
ListBox2.ColumnCount = 5 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
Do
ListBox2.AddItem Found
ListBox2.List(I, 1) = Cells(Found.Row, 24)
ListBox2.List(I, 2) = Cells(Found.Row, 6)
ListBox2.List(I, 3) = Cells(Found.Row, 9)
ListBox2.List(I, 4) = Cells(Found.Row, 10)
Set Found = Cells.FindNext(after:=Found)
If Found.Address = FirstAddress Then Exit Do
I = I + 1
Loop
End If
End With
End Sub
Ich danke euch schon im Voraus für eure Hilfe.
Cheers rizzo91