Microsoft Office Tutorials and References
In Depth Information
Sub ElementInArrayLöschen()
Dim Feld As MSForms.ComboBox
Dim x As Long
Set Feld = UserForm1.ComboBox1
Feld.List = Array("eins", "zwei", "drei")
Feld.RemoveItem 1
For x = LBound(Feld.List) To UBound(Feld.List)
Debug.Print Feld.List(x)
Next
Unload UserForm1
End Sub
Damit haben Sie mit minimalem Code ein Datenfeld realisiert, dem Sie nach Belie-
ben Elemente hinzufügen oder wegnehmen können, ohne es zu redimensionieren.
Userform und Combobox bleiben unsichtbar im Hintergrund. Wenn Sie die Userform
am Ende der Sub nicht „Unloaden“, bleibt die Combobox gefüllt.
Noch effektiver kann ein anderes Steuerelement zum Einsatz kommen, wenn es um
das Sortieren eines Datenfeldes geht. Es gibt keine Standardmethode, um ein Daten-
feld zu sortieren. Natürlich findet man im Netz unzählige handgestrickte Sortieralgo-
rithmen, z.B. Bubblesort oder den extrem schnellen Quicksort , die Sie einbauen kön-
nen, um ihr Array zu sortieren.
Doch hier zeigt sich mal wieder, dass die Excel-Küche (in dem Fall eher Windows-Groß-
küche) viel besser ausgestattet ist, als man für möglich hält. Platzieren Sie auf Ihrer
Userform ein ListView -Steuerelement. Zuvor müssen Sie es über Extras>Zusätzliche
Steuerelemente und mit einem Haken bei Microsoft ListView Control, version 6.0 akti-
vieren. Dies ist ein Standard-Steuerelement von Windows, das zum Beispiel auch im
Datei-Explorer zur Darstellung der Dateien verwendet wird. Es steckt in der Datei
MSCOMCTL.OCX, die eigentlich auf jedem Windows-Rechner verfügbar sein müsste.
Nach der Aktivierung steht das neue Steuerelement in Ihrer Werkzeugsammlung zur
Verfügung, und Sie können es auf die Userform ziehen. Folgender Code nimmt dann
Werte der Spalte A in das Steuerelement auf und gibt sie sortiert an Spalte B weiter.
Sub ListView_Sort()
Dim liste As ListView
Set liste = UserForm1.ListView1
For x = 1 To 3000
liste.ListItems.Add Text:=Cells(x, 1)
Next
liste.Sorted = True
Search JabSto ::




Custom Search