Collapse column

Autor Thema: Office 2013: Einen FIlter in der ListBox anwenden  (Gelesen 769 mal)

Offline rizzo91

  • Newbie
  • *
  • Beiträge: 5
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Office 2013: Einen FIlter in der ListBox anwenden
« am: April 28, 2018, 13:48:40 Nachmittag »
Liebe Community

Ich verzweifle fast an der ListBox... Ich hoffe Ihr könnt mir weiterhelfen Smile

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

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2013: Einen FIlter in der ListBox anwenden
« Antwort #1 am: April 28, 2018, 14:12:16 Nachmittag »
Hallo,

Du könntest wie folgt vorgehen:

- Lese die betroffene Range als Array ein, z.B. myData = ....Range("A1:D1000").Value
- Durchlaufe das Array in einer Schleife (For Next, kein Do While), prüfe den Wert in myData(n,1)
- Trifft der Wert auf den Filter zu, kannst Du die Zeile der Listbox hinzufügen, Listbox.AddItem, Listbox.List(Listbox.ListCount-1,2) = myData(n,2) usw...

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline rizzo91

  • Newbie
  • *
  • Beiträge: 5
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2013: Einen FIlter in der ListBox anwenden
« Antwort #2 am: April 28, 2018, 14:24:12 Nachmittag »
Hallo maniweb

Besten Dank für deine Antwort.

Da ich noch ein ziemlicher Excel VBA Anfänger bin, weiss ich nicht genau was ich nun tun soll respektive wie ich den Code zusammen schreiben soll.
Kannst du mir hier eventuell etwas zusammen basteln? falls du noch mehr Informationen brauchst, kann ich dir diese gerne zukommen lassen

Danke & Gruss
rizzo91

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2013: Einen FIlter in der ListBox anwenden
« Antwort #3 am: April 28, 2018, 14:52:15 Nachmittag »
Hallo,

habe zwar nicht allzuviel Zeit und kann nix versprechen, aber stelle mal eine Beispieldatei hier rein.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline rizzo91

  • Newbie
  • *
  • Beiträge: 5
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2013: Einen FIlter in der ListBox anwenden
« Antwort #4 am: April 28, 2018, 14:56:59 Nachmittag »
Hallo

Kein Problem.

Gerne stelle ich dir eine Beispieldatei zur Verfügung.

Es geht um das UserForm "Geräte Abrufen beim Lieferanten"

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2013: Einen FIlter in der ListBox anwenden
« Antwort #5 am: April 28, 2018, 15:15:38 Nachmittag »
Hallo,

ich mag keine Crosspostings ohne Link-Angabe und bin wieder raus: http://www.clever-excel-forum.de/thread-15401.html

Gruß
« Letzte Änderung: April 29, 2018, 08:20:53 Vormittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.