Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Combobox Dropdown

Combobox Dropdown
22.09.2015 13:32:13
Marcus
Hallo zusammen,
ich versuche mich schon seit Tagen ein einem VBA-Code für Comboboxen. Inzwischen habe ich mir etwas zusammbasteln können, hänge aber immer noch an zwei Punkten.
Punkt 1: Ich habe zwei Comboboxen in einer Tabelle, die mir Spalte I und J ab Zeile 31 ohne Leerzeilen und ohne Duplikate sortiert ausgeben. Soweit so gut. Manuell habe ich noch den Eintrag „ALLE“ über .Additem hinzugefügt. Dieser erscheint aber immer an letzter Stelle, nicht an erster. Was mache ich falsch?
Private Sub ComboBoxT1_DropButtonClick()
Dim objDictionary As Object
Dim varBereich As Variant
Dim loZaehler As Long
Dim arrDaten
Dim lngLetzte As Long
Dim iRow As Long, ALetzte As Long
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Set objDictionary = CreateObject("Scripting.Dictionary")
With ActiveSheet
varBereich = .Range("I31", .Cells(.Rows.Count, 9).End(xlUp))
End With
For loZaehler = LBound(varBereich) To UBound(varBereich)
objDictionary(varBereich(loZaehler, 1)) = 0
Next
arrDaten = objDictionary.keys
Sort_A_Z_T1 arrDaten, LBound(arrDaten), UBound(arrDaten)
ComboBoxT1.List = arrDaten
With ComboBoxT1
.AddItem "ALLE"
End With
End Sub
Public Sub Sort_A_Z_T1(SortArray, L, R)
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I  L)
J = J - 1
Wend
If (I 
Punkt 2: Diesen Code verwende ich auch für zwei (oder mehr) Comboboxen innerhalb einer Userform, jedoch ohne den letzten Abschnitt mit .Additem „ALLE“. Auch hier soll z.B. in Combobox1 der Text ab $I$31 und in Combobox2 der Text ab $J$31 ohne Leerzeilen, ohne Duplikate sortiert aufgelistet sein. Das klappt auch, nur sind in Combobox2 auch die Werte aus Combobox1 enthalten. Kann mir hierzu bitte jemand helfen?
Gru0 Marcus

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox Dropdown
22.09.2015 13:46:45
Rudi
Hallo,
wenn du "ALLE" am Schluss hinzufügst, steht es eben unten.
Private Sub ComboBoxT1_DropButtonClick()
Dim objDictionary As Object
Dim varBereich As Variant
Dim loZaehler As Long
Dim arrDaten
Dim lngLetzte As Long
Dim iRow As Long, ALetzte As Long
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary("ALLE") = 0
With ActiveSheet
varBereich = .Range("I31", .Cells(.Rows.Count, 9).End(xlUp))
End With
For loZaehler = LBound(varBereich) To UBound(varBereich)
objDictionary(varBereich(loZaehler, 1)) = 0
Next
arrDaten = objDictionary.keys
Sort_A_Z_T1 arrDaten, LBound(arrDaten) + 1, UBound(arrDaten)
ComboBoxT1.List = arrDaten
End Sub
zu 2: Das Dictionary zwischendurch leeren. objDictionary.RemoveAll
Gruß
Rudi

Anzeige
AW: Combobox Dropdown
22.09.2015 13:57:41
Marcus
Hallo Rudi,
das ging ja fix. Passt alles genau so wie ich es wollte. Vielen vielen Dank.
Gruß, Marcus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige