in einer Userform habe ich zwei Listboxen.
Jeweils durch Doppelclick wird der angeklickte Eintrag in die andere Listbox übertragen. Das klappt so weit auch.
Frage: Wie kann ich es anstellen, dass anschliessend die Listboxen automatisch neu alphabetisch sortiert werden?
Mein Code sieht so aus:
Option ExplicitPrivate Sub cmdOK_Click()
Unload Me
End SubPrivate Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox2.AddItem
ListBox2.List(ListBox2.ListCount - 1, 0) = ListBox1.List(ListBox1.ListIndex, 0)
ListBox2.List(ListBox2.ListCount - 1, 1) = ListBox1.List(ListBox1.ListIndex, 1)
ListBox1.RemoveItem (ListBox1.ListIndex)
End SubPrivate Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox1.AddItem
ListBox1.List(ListBox1.ListCount - 1, 0) = ListBox2.List(ListBox2.ListIndex, 0)
ListBox1.List(ListBox1.ListCount - 1, 1) = ListBox1.List(ListBox1.ListIndex, 1)
ListBox2.RemoveItem (ListBox2.ListIndex)
End SubPrivate Sub UserForm_Initialize()
Dim anzMitglieder As Integer
Dim i As Integer
'Mitgliederanzahl ermitteln
anzMitglieder = Sheets("Mitgliederliste").Range("A65536").End(xlUp).Row
'Listbox1 und Listbox2 leeren
ListBox1.Clear
ListBox2.Clear
'Listbox1-Eigenschaften festlegen
With ListBox1
.ColumnCount = 3
.MultiSelect = fmMultiSelectSingle
End With'Listbox2-Eigenschaften festlegen
With ListBox2
.ColumnCount = 3
.MultiSelect = fmMultiSelectSingle
End With'Listbox1 füllen
For i = 0 To anzMitglieder - 1
ListBox1.AddItem
ListBox1.List(i, 0) = Sheets("Mitgliederliste").Range(Cells(i + 1, 2), Cells(i + 1, 2))
ListBox1.List(i, 1) = Sheets("Mitgliederliste").Range(Cells(i + 1, 3), Cells(i + 1, 3))
ListBox1.List(i, 2) = Sheets("Mitgliederliste").Range(Cells(i + 1, 4), Cells(i + 1, 4))
Next
End Sub
Code eingefügt mit Syntaxhighlighter 2.1
Gruss Jens