Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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
Combobox mit gefilterten Inhalt
30.12.2018 13:45:31
Erich
Hallo zusammen!
Bin die letzen Tage schon auf der Suche nach eine Lösung; leider bisher nicht zufriedenstellend. (nur etwas komplizierte 2013 Lösung gefunden, welche ich unter 2016 nicht zum laufen bekomme)
Habe eine Haupttabelle (MAIN) mit entsprechenden Dateninhalt. Möchte nun hier 2 CB nutzen und weitere Filter nicht zulassen.(Autofilterzeile wird ausgeblendet)
Wenn ich in der der ersten CB eine Auswahl treffe möchte ich in der zweiten dann nur
noch die gliederten Daten zur Auswahl haben.
Wie gesagt wenn ich das über den Autofilter machen besteht hier die Funktionalität
Habt ihr hier vielleicht ein Beispiel parat welche ich nachbauen könne?
VG
Erich

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox mit gefilterten Inhalt
30.12.2018 13:55:18
Erich
Hallo - habe nun auch ein File mit der gewünschten Lösung hochgeladen.
Vielleicht kann mir hier wer helfen
https://www.herber.de/bbs/user/126401.xlsm
Und wo sind die Inhalte in der 1. ComboBox?
30.12.2018 15:08:40
Beverly
Hi Erich,
was meinst du mit "gewünschte Lösung"? Die 1. ComboBox ist bei dir leer - soll sie mit den Inhalten der Spalte F gefüllt werden, dabei jeden Inhlat nur einmalig?


AW: Und wo sind die Inhalte in der 1. ComboBox?
30.12.2018 16:53:29
Erich
Ja in der ersten Combo soll der Inhalt (ohne Duplikate) der Spalte F enthalten sein.
In der 2ten dann die gefilterten aus Spalte G
Danke!
Anzeige
AW: Und wo sind die Inhalte in der 1. ComboBox?
30.12.2018 16:53:30
Erich
Ja in der ersten Combo soll der Inhalt (ohne Duplikate) der Spalte F enthalten sein.
In der 2ten dann die gefilterten aus Spalte G
Danke!
Lösungsvorschlag
30.12.2018 18:02:33
Beverly
code unter DieseArbeitsmappe:
Option Explicit
Private Sub Workbook_Open()
Dim objDic As Object
Dim varBereich As Variant
Dim lngZaehler As Long
Dim arrDaten As Variant
Set objDic = CreateObject("Scripting.Dictionary")
With Worksheets("DATA")
If .FilterMode Then .ShowAllData
varBereich = .ListObjects("tblData").DataBodyRange.Columns(6)
For lngZaehler = LBound(varBereich) To UBound(varBereich)
objDic(varBereich(lngZaehler, 1)) = 0
Next
arrDaten = objDic.keys
Worksheets("MAIN").CB_CLT.List = WorksheetFunction.Transpose(arrDaten)
End With
Set objDic = Nothing
End Sub
Code im Codemodul des Tabellenblattes MAIN:
Option Explicit
Private Sub CB_CLT_Change()
Dim objDic As Object
Dim varBereich As Variant
Dim lngZaehler As Long
Dim arrDaten As Variant
If CB_CLT.ListIndex  -1 Then
Set objDic = CreateObject("Scripting.Dictionary")
With Worksheets("DATA")
If .FilterMode Then .ShowAllData
.ListObjects("tblData").Range.AutoFilter Field:=6, Criteria1:=CB_CLT
varBereich = .ListObjects("tblData").DataBodyRange.Columns(7).SpecialCells( _
xlCellTypeVisible)
For lngZaehler = LBound(varBereich) To UBound(varBereich)
objDic(varBereich(lngZaehler, 1)) = 0
Next
.ListObjects("tblData").Range.AutoFilter Field:=6
End With
arrDaten = objDic.keys
Worksheets("MAIN").CB_LT.List = WorksheetFunction.Transpose(arrDaten)
Set objDic = Nothing
End If
End Sub


Anzeige
AW: Lösungsvorschlag
31.12.2018 09:13:38
Erich
Danke Karin - Auswahl funktioniert nun wie gewünscht.
Wie bring ich das nun diese in den Autofilter resp.setze am besten zurück.
Danke
Erich
Soll bei Auswahl beider ComboBoxen...
31.12.2018 11:00:07
Beverly
...die Filterung der Spalten F und G erhalten bleiben? Dann ändere den Code wie folgt
Private Sub CB_CLT_Change()
Dim objDic As Object
Dim varBereich As Variant
Dim lngZaehler As Long
Dim arrDaten As Variant
CB_LT.ListIndex = -1
If CB_CLT.ListIndex  -1 Then
Set objDic = CreateObject("Scripting.Dictionary")
With Worksheets("DATA")
If .FilterMode Then .ShowAllData
.ListObjects("tblData").Range.AutoFilter Field:=6, Criteria1:=CB_CLT
varBereich = .ListObjects("tblData").DataBodyRange.Columns(7).SpecialCells( _
xlCellTypeVisible)
For lngZaehler = LBound(varBereich) To UBound(varBereich)
objDic(varBereich(lngZaehler, 1)) = 0
Next
End With
arrDaten = objDic.keys
Worksheets("MAIN").CB_LT.List = WorksheetFunction.Transpose(arrDaten)
Set objDic = Nothing
Else
Worksheets("DATA").ListObjects("tblData").Range.AutoFilter Field:=6
End If
End Sub

und ergänze außerdem die folgende Prozedur:
Private Sub CB_LT_Change()
If CB_LT.ListIndex  -1 Then
Worksheets("DATA").ListObjects("tblData").Range.AutoFilter Field:=7, Criteria1:=CB_LT
Else
Worksheets("DATA").ListObjects("tblData").Range.AutoFilter Field:=7
End If
End Sub



Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige