ich möchte mehrere Comboboxen in einem Userform mit Daten aus unterschiedlichen Spalten einer Stammdatentabelle füllen. Hierbei sollen Duplikate verhindert werden und die Liste der Combobox alphabetisch sortiert sein.
Mit einer Combobox funktioniert das ganze sehr gut mit einem Code, den ich mir mit Hilfe div. Seiten im Netz zusammengeschnibbelt habe. Siehe unten!
Nun möchte ich diesen Code so verändern, dass ich ihn für alle 6 Comboboxen verwenden kann, ohne jedesmal den ganzen Code zu wiederholen. Ich dachte da an ein Schleife. Allerdings frage ich mich, wie ich die Namen der Comboboxen und die dazugehörigen Tabellenspalten in dieser Schleife unterbringe. Mein erster Gedanke ist, diese Informationen in einem Array abzulegen und dieses in einer Schleife abzuarbeiten. Ich weiss aber nicht, ob ich damit richtig liege. Wenn ja, weiss ich nicht, wie genau ich das bewerkstelligen muss.
Kann mir jemand dabei helfen?
Option Explicit
Private Sub UserForm_Initialize()
Dim ar As Variant
Dim dictUnikate As Object
Dim lngLastRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Stammdaten")
Set dictUnikate = CreateObject("scripting.dictionary")
lngLastRow = ws.Cells(Rows.Count, 2).End(xlUp).Row
ar = ws.Range(Cells(6, 2), Cells(lngLastRow, 2))
ar = WorksheetFunction.Transpose(ar)
Call Unikate(ar)
Call QSort(ar, LBound(ar), UBound(ar))
cbName.List = ar
End Sub
Sub Unikate(ByRef ar)
Dim i As Long
With CreateObject("scripting.dictionary")
For i = LBound(ar) To UBound(ar)
If ar(i) "" Then .Item(ar(i)) = 0
Next
ar = .Keys
End With
End Sub
Sub QSort(ByRef arr, low, hi)
Dim i, j, p
While low
mfg,P-Quest :-)