Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Combobox

Forumthread: Combobox

Combobox
03.08.2022 16:08:32
Marc
Hi all
Ich versuche über eine Combobox mit 3 Filtern eine Tabelle zu filtern und diese dann zu kopieren. Wenn im 1. Filter eine Auswahl markiert wird, dann müsste die beiden weiteren Filtern nur noch die entsprechenden Daten enthalten. Am Schluss würde ich dann gerne die gewählten Filterkriterien in eine sep. Tabelle schreiben.
Hat hier jemand einen Code-Vorschlag für mich? Ich habe nichts gefunden, was ich selber abändern könnte.
Dankeschön.
Grüsse
Marc
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox
03.08.2022 16:53:12
Nepumuk
Hallo Marc,
zum Weiterentwickeln:

Option Explicit
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
With Tabelle1
If .FilterMode Then Call .ShowAllData
End With
Call ComboBox2.Clear
Call ComboBox3.Clear
Call Tabelle1.AutoFilter.Range.AutoFilter(Field:=1, Criteria1:=ComboBox1.Text)
Call FillBox(2)
End If
End Sub
Private Sub ComboBox2_Change()
If ComboBox2.ListIndex > -1 Then
Call ComboBox3.Clear
Call Tabelle1.AutoFilter.Range.AutoFilter(Field:=2, Criteria1:=ComboBox2.Text)
Call FillBox(3)
End If
End Sub
Private Sub ComboBox3_Change()
If ComboBox3.ListIndex > -1 Then
Call Tabelle1.AutoFilter.Range.AutoFilter(Field:=3, Criteria1:=ComboBox3.Text)
End If
End Sub
Private Sub UserForm_Initialize()
With Tabelle1
If .FilterMode Then Call .ShowAllData
End With
Call FillBox(1)
End Sub
Private Sub FillBox(ByVal pvlngColumn As Long)
Dim objDataObject As DataObject
Dim objDictionary As Object
Dim strText As String
Dim avntValues As Variant, vntItem As Variant
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
Set objDataObject = New DataObject
With Tabelle1.AutoFilter.Range
Call Range(.Cells(2, pvlngColumn), .Cells(.Rows.Count, pvlngColumn)).Copy
End With
With objDataObject
.GetFromClipboard
strText = .GetText
End With
Set objDataObject = Nothing
Application.CutCopyMode = False
strText = Left$(strText, Len(strText) - 2)
avntValues = Split(strText, vbCrLf)
For Each vntItem In avntValues
objDictionary.Item(vntItem) = vbNullString
Next
Controls("ComboBox" & CStr(pvlngColumn)).List = objDictionary.Keys
Set objDictionary = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: Combobox
05.08.2022 08:57:02
Marc
Hallo Nepumuk
Vielen herzlichen Dank für die Rückmeldung und den Code-Vorschlag. Ich habe es noch nicht ganz zum laufen gebraucht und vielen Dank für den Code.
Beste Grüsse
Marc
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige