[VBA] ListBox mit Autofilter-Werten befüllen
#1
Hallo zusammen,

ich habe einen Autofilter:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next

If Target.Column = 8 And Target.Row = 1 Then
If Target.Value <> "" Then
Worksheets("RegionFilter").Range("A1").AutoFilter , FIELD:=1, Criteria1:=Range("H1")
Else
FilterAufheben
End If
End If
End Sub

Nun würde ich gern meine Listbox mit den jeweils gefilterten Werten anzeigen lassen.
Code:
Private Sub TextBox1_Change()
Dim i As Long
Dim j As Long
Dim a As Long
a = Len(TextBox1)
ListBox1.Clear
With Worksheets("RegionFilter")
For i = 2 To .UsedRange.Rows.Count
    For j = 1 To Len(.Cells(i, 2)) - a + 1
        If UCase(Mid(.Cells(i, 2), j, a)) = UCase(TextBox1) Then
            ListBox1.AddItem (.Cells(i, 2))
            Exit For
        End If
    Next j
Next i
End With
End Sub

Private Sub UserForm_Initialize()
Start.Range("Hotelauswahl").Value = ""
Dim i As Long
With Worksheets("RegionFilter")
For i = 1 To .UsedRange.Rows.Count
ListBox1.AddItem (.Cells(i, 2))
Next
TextBox1 = " "
TextBox1 = ""
End With
End Sub
So zeigt er mir aber natürlich ständig die komplette Liste an ... 

Mag jemand helfen?

Grüße
Top
#2
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.address="$H$1" and target<>"" then  
    with sheets("RegionFilter").columns(1)
      .autofilter
      .copy cells(1,100)
      .autofilter
    end with

    Listbox1.List=cells(1,100).currentregion.value
    cells(1,100).currentregion.clearcontents
  End if
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#3
Hallo

ohne mich jetzt allzutief in die Details zu versteigen, müsste eigentlich folgende kleine Ergänzung dein Problem lösen:

Diese Zeile gibt's schon:
 ListBox1.AddItem (.Cells(i, 2))

Ändern in
  if .rows(i).hidden=false then ListBox1.AddItem (.Cells(i, 2))

vg, MM
Top
#4
mmat,

funktioniert super!!

Merci
Top
#5
Zum Füllen einer Listbox/Combobox, verzichte auf additem.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#6
Hi snb,


ok... kannst du mir sagen warum?

Grüße
Top
#7
Ist viel zu langsam!
Das mag bei 20 Einträgen unerheblich sein, aber seit ich snbs Varianten kenne, bin ich diesbezüglich sein Fan.  Angel
http://www.snb-vba.eu/VBA_Fill_combobox_listbox_en.html

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#8
puhh.. 

klingt interessant. Muss ich erstmal durchsteigen, wie ich das für meine Formeln anpasse..  Huh
Top


Gehe zu:


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