Anzeige
Archiv - Navigation
1912to1916
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
Listbox in 2 Spalten suchen
29.12.2022 15:35:16
wolfgang
Hallo allerseits,
vorweg, allen einen guten rutsch ins neue Jahr und viel Gesundheit !
Ich habe eine Tabelle mit Daten von Spalte B bis Spalte L und eine Userform mit einer Listbox.
Auf dieser Listbox ist eine ComboBox, die bisher in Spalte C filtert.
Wenn ich den Buchstaben s in die ComboBox eingebe, wird schon alles was mit S anfängt gelistet.
Funktioniert einwandfrei.
Ich möchte gern das bei der Eingabe eines Buchstaben oder auch Wort aber jetzt in Spalte D+E nach dem Wort oder auch Buchstaben
gefiltert wird.
Ist das möglich ?
Hier das bestehende Makro :
Public Sub ComboBox1_Change()
Dim arr, arrData
Dim i As Long, cnt As Long
Dim loletzteA As Long
Dim rng As Range
With Worksheets("Adressen")
loletzteA = .Cells(.Rows.Count, 3).End(xlUp).Row 'hier auf 2 (vorher1 )gesetzt da spalte 1nicht mehr genutzt wird
arr = .Range("B3:L" & loletzteA).Value
End With
With ListBox1
If ComboBox1.Value = "" Or ComboBox1.ListIndex = 0 Then .List = arr: Exit Sub
.RowSource = ""
.Clear
ReDim arrData(1 To UBound(arr), 1 To UBound(arr, 2))
For i = LBound(arr) To UBound(arr)
If ComboBox1 = arr(i, 2) Then
cnt = cnt + 1
arrData(cnt, 1) = arr(i, 1)
arrData(cnt, 2) = arr(i, 2)
arrData(cnt, 3) = arr(i, 3)
arrData(cnt, 4) = arr(i, 4)
arrData(cnt, 5) = arr(i, 5)
arrData(cnt, 6) = arr(i, 6)
arrData(cnt, 7) = Format(arr(i, 7), "currency")
End If
Next
If cnt = 0 Then Exit Sub
arrData = Application.Transpose(arrData)
ReDim Preserve arrData(1 To UBound(arr, 2), 1 To cnt)
If cnt = 1 Then .Column = arrData Else .List = Application.Transpose(arrData)
End With
Ich habe keine Ahnung was ich da ändern muss, Anfang des Jahres hatte ein Uwe geholfen.
mfg
wolfgang

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox in 2 Spalten suchen
29.12.2022 16:39:53
Alwin
Hallo Wolfgang,
lade mal eine kleine Testdatei hoch.
Gruß Uwe
AW: Listbox in 2 Spalten suchen
29.12.2022 16:46:43
ralf_b

If ComboBox1 = arr(i, 3)  or  ComboBox1 = arr(i, 4) Then

korrektur
29.12.2022 17:05:36
ralf_b

If ComboBox1 Like "*" & arr(i, 3) & "*" Or ComboBox1 Like "*" & arr(i, 4) & "*" Then

komisch...
29.12.2022 17:35:49
wolfgang
Hey Ralf,
anbei Makro, habe die Zeilen mal ausgeklammert und es wird trotzdem Spalte C gefiltert.

Public Sub ComboBox1_Change()
Dim arr, arrData
Dim i      As Long, cnt As Long
Dim loletzteA As Long
Dim rng    As Range
With Worksheets("Adressen")
loletzteA = .Cells(.Rows.Count, 3).End(xlUp).Row  'hier auf 2 (vorher1 )gesetzt da spalte 1nicht mehr genutzt wird
arr = .Range("B3:L" & loletzteA).Value
End With
With ListBox1
'  If ComboBox1.Value = "" Or ComboBox1.ListIndex = 0 Then .List = arr: Exit Sub
' If ComboBox1.Value Like "*" & arr(i, 3) & "*" Or ComboBox1.Value Like "*" & arr(i, 4) & "*" Then .List = arr: Exit Sub
.RowSource = ""
.Clear
ReDim arrData(1 To UBound(arr), 1 To UBound(arr, 2))
For i = LBound(arr) To UBound(arr)
If ComboBox1 = arr(i, 2) Then
cnt = cnt + 1
arrData(cnt, 1) = arr(i, 1)
arrData(cnt, 2) = arr(i, 2)
arrData(cnt, 3) = arr(i, 3)
arrData(cnt, 4) = arr(i, 4)
arrData(cnt, 5) = arr(i, 5)
arrData(cnt, 6) = arr(i, 6)
arrData(cnt, 7) = Format(arr(i, 7), "currency")
End If
Next
If cnt = 0 Then Exit Sub
arrData = Application.Transpose(arrData)
ReDim Preserve arrData(1 To UBound(arr, 2), 1 To cnt)
If cnt = 1 Then .Column = arrData Else .List = Application.Transpose(arrData)
End With
End Sub
mfg wolfgang
Anzeige
AW: Listbox in 2 Spalten suchen
29.12.2022 17:25:57
wolfgang
Guten Abend,
habe so reingesetzt, leider Fehlermeldung:
Laufzeitfehler 9
Index außerhalb des gültigen Bereiches

' If ComboBox1.Value = "" Or ComboBox1.ListIndex = 0 Then .List = arr: Exit Sub
If ComboBox1 Like "*" & arr(i, 3) & "*" Or ComboBox1 Like "*" & arr(i, 4) & "*" Then .List = arr: Exit Sub
mfg wolfgang
AW: Listbox in 2 Spalten suchen
29.12.2022 17:34:42
ralf_b
die erste Zeile solltest du nicht auskommentieren.
diese Zeile ersetzen If ComboBox1 = arr(i, 2) Then
AW: Listbox in 2 Spalten suchen
29.12.2022 17:45:14
wolfgang
Hallo,
drin gelassen, kommt Fehlermeldung:
"Fehler beim Kompilieren
End With ohne With"
If ComboBox1.Value = "" Or ComboBox1.ListIndex = 0 Then .List = arr: Exit Sub
If ComboBox1.Value Like "*" & arr(i, 3) & "*" Or ComboBox1.Value Like "*" & arr(i, 4) & "*" Then
wolfgang
Anzeige
Sorry mein Fehler...
29.12.2022 17:49:08
wolfgang
Hey,
mein Fehler, lesen muss man können,
wolfgang
Bitte nochmal prüfen, danke im Voraus
29.12.2022 22:05:27
wolfgang
Hallo zusammen,
bitte nochmal prüfen.
Es wird immer noch die Spalte B in der ComboBox angezeigt, wenn ich diese öffne.

Public Sub ComboBox1_Change()
Dim arr, arrData
Dim i      As Long, cnt As Long
Dim loletzteA As Long
Dim rng    As Range
With Worksheets("Adressen")
loletzteA = .Cells(.Rows.Count, 3).End(xlUp).Row
arr = .Range("B3:L" & loletzteA).Value
End With
With ListBox1
If ComboBox1.Value = "" Or ComboBox1.ListIndex = 0 Then .List = arr: Exit Sub
.RowSource = ""
.Clear
ReDim arrData(1 To UBound(arr), 1 To UBound(arr, 2))
For i = LBound(arr) To UBound(arr)
' If ComboBox1 = arr(i, 2) Then
If ComboBox1 Like "*" & arr(i, 3) & "*" Or ComboBox1 Like "*" & arr(i, 4) & "*" Then
cnt = cnt + 1
arrData(cnt, 1) = arr(i, 1)
arrData(cnt, 2) = arr(i, 2)
arrData(cnt, 3) = arr(i, 3)
arrData(cnt, 4) = arr(i, 4)
arrData(cnt, 5) = arr(i, 5)
arrData(cnt, 6) = arr(i, 6)
arrData(cnt, 7) = Format(arr(i, 7), "currency")
End If
Next
If cnt = 0 Then Exit Sub
arrData = Application.Transpose(arrData)
ReDim Preserve arrData(1 To UBound(arr, 2), 1 To cnt)
If cnt = 1 Then .Column = arrData Else .List = Application.Transpose(arrData)
End With
End Sub
mfg
wolfgang
Anzeige
AW: Bitte nochmal prüfen, danke im Voraus
29.12.2022 22:29:15
ralf_b
Mann Mann Mann,
Wolfgang deine Eingangsfrage ist beantwortet.
Was deine Combobox anzeigt oder was nicht, ist nicht Gegenstand der Frage gewesen.
Du wolltest den Filter für die Listbox erweitern.
Und dein Code behandelt nur die Befüllung einer Listbox abhängig vom Wert aus einer Combobox.
Die Befüllung der Combobox ist weder zu sehen, noch möchte ich dir hier die Eigenschaften einer Combobox auseinander pflücken.
Die kannst du gerne selbst nachlesen.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige