AW: Combobox füllen
18.10.2019 07:54:38
Georg
Hallo Nepumuk und natürlich alle anderen,
ich benötige da doch nochmal ein Hilfestellung.
Den Code von Nemupuk habe ich soweit angepasst, dass ich meine Combobox7 richtig gefüllt bekomme.
Public Sub Combobox_fuellen(Arbeitsblatt As String, Comboboxnr As Integer, Tabelle As String, _
Spalte As Integer)
Dim avntValues As Variant, vntItem As Variant
Dim objDictionary As Object
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
avntValues = Worksheets(Arbeitsblatt).ListObjects(Tabelle).DataBodyRange.Columns(Spalte). _
Value
With objDictionary
For Each vntItem In avntValues
.Item(Key:=vntItem) = vbNullString
Next
Userform_Main.Controls("ComboBox" & Comboboxnr).List = .Keys
End With
Set objDictionary = Nothing
End Sub
Nun möchte ich noch gerne eine weitere Combobox8 automatisch befüllen. Allerdings soll hier der Wert aus Combobox7 als Filterwert benutzt werden.
Also nach dem Motto:
Wenn in TabelleX in SpalteX der Wert combobox7.value steht, dann
For Each vntItem In avntValues
.Item(Key:=vntItem) = vbNullString
Ich bin mir ziemlich sicher, dass meine Lösung schon in diesem Beitrag (https://www.herber.de/forum/archiv/1688to1692/1688510_VBA_Verteilung_auf_Reiter.html) steckt, allerdings weiß ich nicht so recht wie ich diese anpassen muss.
Der Code sieht bislang wie folgt aus:
Public Sub Combobox_fuellen2(Arbeitsblatt As String, Comboboxnr As Integer, Tabelle As String, _
Spalte_Werte As Integer, Optional ByVal Spalte_filter = 2, Optional ByVal Spalte_Filter_Wert As Variant)
Dim avntValues As Variant, vntItem As Variant
Dim avntValues2 As Variant, vntItem2 As Variant
Dim objDictionary As Object
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
avntValues = Worksheets(Arbeitsblatt).ListObjects(Tabelle).DataBodyRange.Columns( _
Spalte_Werte).Value
avntValues2 = Worksheets(Arbeitsblatt).ListObjects(Tabelle).DataBodyRange.Columns( _
Spalte_filter).Value
With objDictionary
For Each vntItem In avntValues
' If Not IsEmpty(vntItem) Then objDictionary.Item(Key:=vntItem) = vbNullString
.Item(Key:=vntItem) = vbNullString
Next
Userform_Main.Controls("ComboBox" & Comboboxnr).List = .Keys
End With
Set objDictionary = Nothing
End Sub
Ich bin für jeden Tipp dankbar!
LG
Georg