Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListView sortieren

ListView sortieren
15.04.2021 11:28:42
Olga
Hallo,
ich lasse in mein ListView Daten aus einer Tabelle einlesen.
Wenn ich einen Datensatz (ComboBox Auswahl und dann speichern drücken) ändern will, dann wird nur ein Teil in der Listview angezeigt.
Nehme ich Listview.sorted = false dann funktioniert es.
Wo liegt mein Fehler?
Danke!
Gruß
Olga
https://www.herber.de/bbs/user/145544.xlsm
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListView sortieren
15.04.2021 11:58:47
Nepumuk
Hallo Olga,
die Sorted-Eigenschaft ist noch immer auf True. Also:
    With Me.lvwA
.ListItems.Clear
.ColumnHeaders.Clear
.View = lvwReport
.Sorted = False
.ColumnHeaders.Add , , "Datum", Sheets("Artikel").Columns(13).Width
.ColumnHeaders.Add , , "Bezeichnung", Sheets("Artikel").Columns(2).Width
.ColumnHeaders.Add , , "Bezeichnung Nr.", Sheets("Artikel").Columns(3).Width
.ColumnHeaders.Add , , "Einheit", Sheets("Artikel").Columns(4).Width
For lol = 2 To Sheets("Artikel").Cells(Rows.Count, 1).End(xlUp).Row
x = x + 1
.ListItems.Add , , Sheets("Artikel").Cells(lol, 13)
.ListItems(x).SubItems(1) = Sheets("Artikel").Cells(lol, 2)
.ListItems(x).SubItems(2) = Sheets("Artikel").Cells(lol, 3)
.ListItems(x).SubItems(3) = Sheets("Artikel").Cells(lol, 4)
Next
y = .ColumnHeaders(1).Width + .ColumnHeaders(2).Width + _
.ColumnHeaders(3).Width + .ColumnHeaders(4).Width + 5
.Width = y
.SortKey = 0
.Sorted = True
End With

Gruß
Nepumuk
Anzeige
AW: ListView sortieren
15.04.2021 12:00:36
Olga
Hallo Nepumuk,
vielen Dank!
Klappt super.
Gruß
Olga
;
Anzeige
Anzeige

Infobox / Tutorial

ListView in Excel sortieren und verwalten


Schritt-für-Schritt-Anleitung

Um ein ListView in Excel zu sortieren, kannst Du die folgenden Schritte befolgen:

  1. Initialisierung des ListView: Stelle sicher, dass Deine ListView korrekt initialisiert ist. Du kannst das mit VBA tun, indem Du die Sorted-Eigenschaft auf False setzt, bevor Du Daten hinzufügst.

    With Me.lvwA
       .ListItems.Clear
       .ColumnHeaders.Clear
       .View = lvwReport
       .Sorted = False
       .ColumnHeaders.Add , , "Datum", Sheets("Artikel").Columns(13).Width
       .ColumnHeaders.Add , , "Bezeichnung", Sheets("Artikel").Columns(2).Width
       .ColumnHeaders.Add , , "Bezeichnung Nr.", Sheets("Artikel").Columns(3).Width
       .ColumnHeaders.Add , , "Einheit", Sheets("Artikel").Columns(4).Width
  2. Daten hinzufügen: Füge Deine Daten in das ListView ein. Achte darauf, dass Du die Daten in der richtigen Reihenfolge hinzufügst.

    For lol = 2 To Sheets("Artikel").Cells(Rows.Count, 1).End(xlUp).Row
       x = x + 1
       .ListItems.Add , , Sheets("Artikel").Cells(lol, 13)
       .ListItems(x).SubItems(1) = Sheets("Artikel").Cells(lol, 2)
       .ListItems(x).SubItems(2) = Sheets("Artikel").Cells(lol, 3)
       .ListItems(x).SubItems(3) = Sheets("Artikel").Cells(lol, 4)
    Next
  3. Sortieren aktivieren: Nachdem alle Daten hinzugefügt wurden, kannst Du die Sorted-Eigenschaft wieder auf True setzen, um die Daten zu sortieren.

    .Sorted = True

Häufige Fehler und Lösungen

  • Fehler: Nur ein Teil der Daten wird angezeigt: Wenn Du beim Sortieren nur einen Teil der Daten siehst, stelle sicher, dass Du die Sorted-Eigenschaft auf False setzt, bevor Du Daten hinzufügst. Dies wurde von Nutzer Nepumuk klar dargestellt.

  • Fehler: ListView zeigt keine Spaltenüberschriften an: Überprüfe, ob Du die ColumnHeaders korrekt hinzugefügt hast, und dass die View-Eigenschaft auf lvwReport gesetzt ist.


Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch eine HTML-Liste verwenden, um Deine Daten zu sortieren. Tools wie JavaScript bieten einfache Möglichkeiten, eine ListView zu erstellen und zu sortieren. Diese Methode ist jedoch nicht direkt in Excel integriert.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du ein ListView in Excel mit VBA erstellen und sortieren kannst:

Private Sub UserForm_Initialize()
    Dim x As Long
    With Me.lvwA
        .ListItems.Clear
        .ColumnHeaders.Clear
        .View = lvwReport
        .Sorted = False
        ' Füge Spalten hinzu
        .ColumnHeaders.Add , , "Datum", 100
        .ColumnHeaders.Add , , "Bezeichnung", 150
        ' Füge Daten hinzu
        For x = 1 To 10
            .ListItems.Add , , "Datum " & x
            .ListItems(x).SubItems(1) = "Bezeichnung " & x
        Next x
        .Sorted = True
    End With
End Sub

Tipps für Profis

  • Datenquelle optimieren: Stelle sicher, dass Deine Datenquelle gut strukturiert ist. Eine saubere Datenbasis erleichtert das Sortieren und Filtern.

  • VBA-Optimierung: Verwende die Application.ScreenUpdating = False und Application.Calculation = xlCalculationManual, um die Performance beim Hinzufügen großer Datenmengen zu verbessern.

  • Benutzerdefinierte Sortierung: Du kannst auch benutzerdefinierte Sortierlogik implementieren, um komplexere Anforderungen zu erfüllen.


FAQ: Häufige Fragen

1. Wie kann ich ein ListView in Excel erstellen?
Du kannst ein ListView in Excel mithilfe von VBA erstellen, indem Du ein UserForm verwendest und ein ListView-Steuerelement hinzufügst.

2. Wie kann ich die Sortierreihenfolge ändern?
Um die Sortierreihenfolge zu ändern, musst Du den SortKey in Deinem VBA-Code anpassen, bevor Du Sorted auf True setzt.

3. Gibt es Einschränkungen bei der Verwendung von ListView in Excel?
Ja, ListViews haben eine maximale Anzahl von Elementen, die sie anzeigen können. Achte darauf, dass Du nicht zu viele Elemente hinzufügst, da dies die Performance beeinträchtigen kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige