habe gerade wieder ein kleines Problem. Ich erkläre erst einmal was ich machen möchte. Also ich möchte eine Kombinationsfeld mit Werten füllen. Das Kombinationsfeld soll mit allen "Optionen" gefüllt werden die in einer Spalte stehen. Wichtig in der Spalte sind viele "Optionen" mehrfach vorhanden. Im Kombinationsfeld soll aber jede "Option" nur einfach vorkommen.
Nun was ich gemacht habe:
In der vierten Spalte werden alle Zelleninhalte ab Zeile 13 in eine Object-Variable geschrieben. Durch die Schleife erkenne ich sobald meine Liste in der Excel-Datei abgearbeitet wurde. Durch den Befehl "Not objOptionenListe.exists" kann ich sicherstellen, dass jede Option nur einmal vorkommen. Das klappt auch alles soweit richtig gut. Mit Debug.Print konnte ich mir auch anzeigen lassen, dass der Befehl "Join(objOptionenListe.Keys, vbCrLf)" alle Optionen unter einander schreibt (mit Enter-Zeichen). Was aber nicht klappt dies in das Kombinationsfeld zu übernehmen Hier wird alles hintereinander (in eine Zeile) geschrieben und nicht jede Option einzeln (untereinander).
Könnt Ihr mir sagen ob ich die falsche Funktion/Methode für das Kombinationsfeld verwende oder ob Ihr eine ander Möglichkeit wisst wie ich mein Problem lösen kann. Ich finde das mit der Object-Variablen schön, weil es recht gut verständlich und übersichtlich ist.
Vielen Dank schon jetzt für eure Hilfe.
Gruß
Dominik
Mein Code:
In Modul modUserForm
Function Optionen() As String
Dim objOptionenListe As Object
Dim intZeileManageMyLabelsNummer As Integer
Dim strOption As String
Dim strOptionsListe As String
Dim intStartZeile As Integer
Dim intSpalteOptionen As Integer
intStartZeile = 13 'Starten in Zeile
intSpalteOptionen = 4 'Inhalt aus Spalte
Set objOptionenListe = CreateObject("Scripting.Dictionary")
While Tabelle1.Cells(intStartZeile, intSpalteOptionen) ""
strOption = ActiveSheet.Cells(intStartZeile, intSpalteOptionen)
If Not objOptionenListe.exists(strOption) Then objOptionenListe.Add strOption, 1
intStartZeile = intStartZeile + 1
Wend
strOptionsListe = Join(objOptionenListe.Keys, vbCrLf)
'Debug.Print strOptionsListe
Optionen = strOptionsListe
End Function Im UserForm
Private Sub UserForm_Activate()
klbOptionen.AddItem modUserForm.Optionen
End Sub