Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Listbox sortieren

Betrifft: Listbox sortieren von: Lisa
Geschrieben am: 11.12.2015 10:40:40

Hallo zusammen, wenn ich mir den Betreff ansehe, bekomme ich selbst schon ein schlechtes Gewissen.
In meiner Googlerecherche habe ich zu diesem Betreff sehr viel gefunden.
Für meine Bedürfnisse allerdings finde ich nicht das Richtige.

Meine Frage:

Ich habe eine mehrspaltige Listbox.

Private Sub UserForm_Activate()
Dim ZeileMAx As Long
Dim Vardat As Variant
ZeileMAx = Tabelle1.Cells(Tabelle1.Rows.Count, 1).End(xlUp).Row
Vardat = Tabelle1.Range("A1:M" & ZeileMAx).Value
With Me.ListBox1
.ColumnWidths = "25;25"
.ColumnCount = Tabelle1.Range("A1:M1").Columns.Count
.RowSource = Tabelle1.Range("A1:M" & ZeileMAx).Address
End With

End Sub
Hier habe ich drei Button über den ersten drei ersten Spalten über die ich gern den Inhalt spaltenabhängig sortieren möchte.

Hat jemand eine Idee um mich hier zu unterstützen?
Sollte eine Datei notwendig sein lade ich sie gern hoch.

LG Lisa

  

Betrifft: AW: Listbox sortieren von: Daniel
Geschrieben am: 11.12.2015 10:50:57

Hi

wenn du die Listbox über RowSource mit einem Zellbereich verknüpfst, dann musst du diesen Zellbereich mit der Excelfunktion .Sort entsprechend umsortieren.

also beispielsweise folgenden code für das Sortiern nach Spalte 1:

With Tabelle1.Range(Listbox1.rowsource)
    .Sort Key1:=.Cells(1, 1), order1:=xlascending, Header:=xlno
End with
für's sortieren nach anderen Spalten dann dann bei Key1 die Spaltennummer entsprechend anpassen:
.Sort Key1:=.Cells(1, 2)...
Gruß Daniel


  

Betrifft: AW: Listbox sortieren von: Lisa
Geschrieben am: 11.12.2015 11:07:05

Hallo Daniel, vielen Dank für die schnelle Antwort.

Nach diesem Prinzip also wird dann in der Tabelle sortiert und nicht in der Listbox.

Es klappt wie gewünscht, Dankeschön.

...nur Interessehalber, wie würde es funktionieren wenn in der Listbox selbst sortiert wird?

Sollte es zuviel Mühe machen es zu erklären, ist es auch nicht schlimm.
Mir hast du sehr geholfen.

LG Lisa


  

Betrifft: AW: Listbox sortieren von: Rudi Maintaire
Geschrieben am: 11.12.2015 12:07:35

Hallo,
dann darfst du die Listbox nicht per RowsSource sondern musst sie über die List-Eigenschaft füllen.

War erst Mittwoch ein Thema:
https://www.herber.de/forum/messages/1463164.html

Gruß
Rudi


  

Betrifft: AW: Listbox sortieren von: Lisa
Geschrieben am: 11.12.2015 15:06:15

Hallo Rudi, ok vielen Dank auch dir für den Link.
Hier bedarf es für mich noch viel zu lernen.

Mir kam gerade noch eine Idee zu dem sortieren.
Wenn ich über der Userform einen SpinButton setzen würde um somit die Sortierung Auf- bzw. Absteigend zu ermöglichen.
Hier wird ja nun aufsteigend sortiert.

was genau müsste ich dann hier ändern?

With Tabelle1.Range(Listbox1.rowsource)
.Sort Key1:=.Cells(1, 1), order1:=xlascending, Header:=xlno
End with

LG Lisa


  

Betrifft: AW: Listbox sortieren von: Daniel
Geschrieben am: 11.12.2015 15:13:13

Hi


im SpinUp-event folgender Code:

With Tabelle1.Range(Listbox1.rowsource)
 .Sort Key1:=.Cells(1, 1), order1:=xlascending, Header:=xlno
End with

im SpinDown-Event dieser Code:
With Tabelle1.Range(Listbox1.rowsource)
 .Sort Key1:=.Cells(1, 1), order1:=xldescending, Header:=xlno
End with
die Sortierrichtung wird über den Paramter order1 gesteuert, hier kannst du xlascending oder xldescending einsetzen.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Listbox sortieren"