Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

[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