Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListView Steuerelement

Forumthread: ListView Steuerelement

ListView Steuerelement
02.04.2005 13:24:55
J.L.
Hallo Forum, wer hat Erfahrungen mit dem ListView-Element unter VBA.
Leider hat mich die Recherche, auch in anderen Foren, nicht wirklich weitergebracht. Hat jemand Hinweise ?
Wie müßte z.B. der folgende Code aussehen, wenn statt der Listboxen ein zweispaltiges Listview gefüllt werden soll?

Sub fillverlauf()
Dim VName$
VName = Dir(Pfad & "\Verlauf\*.xls")
While VName <> ""
ListBox3.AddItem (Left(VName, Len(VName) - 20))
ListBox4.AddItem (Mid(VName, Len(VName) - 19))
VName = Dir()
Wend
End Sub

Vielen Dank
Jörg
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListView Steuerelement
02.04.2005 14:47:27
K.Rola
Hallo,
mal ein Beispiel, wie es prinzipiell geht.
In Spalte A stehen Namen, in Spalte B Vornamen:
Private Sub UserForm_Initialize()
Dim x As Long
Dim ix As ListItem
With ListView1
.ColumnHeaders.Add , , "Name", 80
.ColumnHeaders.Add , , "Vorname", 80
.View = 3
For x = 1 To 10
.ListItems.Add , , Cells(x + 1, 1)
.ListItems(x).SubItems(1) = Cells(x + 1, 2)
Next
End With
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
AW: ListView Steuerelement
02.04.2005 15:57:30
J.L.
OK, das sieht schon mal sehr geschmeidig aus. Hab den Code wie folgt übernommen

Private Sub UserForm_Initialize()
Dim x As Long, pfad$ , VName$
Dim ix As ListItem
pfad = CreateObject("Scripting.FileSystemObject").GetFile(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name).parentfolder.parentfolder
With ListView1
.Width = 240
.ColumnHeaders.Add , , "Name", 80
.ColumnHeaders.Add , , "erstellt am", 80
.ColumnHeaders.Add , , "zuletzt bearbeitet", 80
.ColumnHeaders.Add , , "Name komplett", 80
.View = 3
VName = Dir(pfad & "\Verlauf\*.xls")
While VName <> ""
x = x + 1
.ListItems.Add , , Left(VName, Len(VName) - 20)
.ListItems(x).SubItems(1) = Mid(VName, Len(VName) - 18, 8)
.ListItems(x).SubItems(2) = FileDateTime(pfad & "\Verlauf\" & VName)
.ListItems(x).SubItems(3) = pfad & "\Verlauf\" & VName
VName = Dir()
Wend
End With
End Sub

Jetzt möchte ich nur noch den in der verborgenen 4. Spalte abgelegten kompletten Ddateinamen auf Doppelklick zurückgegeben haben um die Datei zu öffnen. Mit SelectedItem bin ich noch nicht zum Ziel gekommen.
ListView ist geil.
Danke
Jörg
Anzeige
AW: ListView Steuerelement
02.04.2005 16:18:12
K.Rola
Hallo,
Private Sub ListView1_DblClick()
Dim Pfad As String
Pfad = ListView1.SelectedItem.ListSubItems(3).Text
MsgBox Pfad
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
Danke o.T.
02.04.2005 18:43:17
J.L.
.
ListView vs. Listbox
03.04.2005 08:55:46
Rolf Beißner
Hallo K.Rola,
nach welchen Kriterien arbeitest du
mit dieser oder jener???
Herzliche Grüße
Rolf
AW: ListView vs. Listbox
03.04.2005 14:37:40
K.Rola
Hallo,
wenn die Anwendung privat ist, mit Listview, wenn es ein Auftrag ist, wird mit
Auftraggeber geklärt, wie er es haben will. Mir ist dann allerdings dann die Listbox
lieber, weil weniger Aufwand.

Gruß K.Rola

Es gibt keine Sünde außer der Dummheit.

Oscar Wilde


Anzeige
AW: ListView vs. Listbox
03.04.2005 19:14:24
Rolf Beißner
Hallo K.Rola,
danke für die Info
+ den neuen Wilde(n) Spruch.
Herzliche Grüße
Rolf
;
Anzeige

Infobox / Tutorial

ListView Steuerelement in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um ein ListView-Steuerelement in Excel VBA zu verwenden, folge diesen Schritten:

  1. UserForm erstellen: Öffne den Visual Basic for Applications (VBA) Editor (ALT + F11) und füge eine UserForm hinzu.
  2. ListView-Steuerelement hinzufügen: Ziehe das ListView-Steuerelement aus der Toolbox auf die UserForm. Wenn die Toolbox nicht sichtbar ist, aktiviere sie über „Ansicht“ > „Toolbox“.
  3. ListView konfigurieren:
    • Gehe in den Eigenschaften des ListView-Steuerelements und setze die View-Eigenschaft auf 3 (Berichtansicht).
    • Füge Spaltenüberschriften hinzu:
      With ListView1
       .ColumnHeaders.Add , , "Name", 80
       .ColumnHeaders.Add , , "Vorname", 80
      End With
  4. Daten hinzufügen: Verwende die Methode ListItems.Add, um Daten zum ListView hinzuzufügen:
    For x = 1 To 10
       ListView1.ListItems.Add , , Cells(x + 1, 1)
       ListView1.ListItems(x).SubItems(1) = Cells(x + 1, 2)
    Next

Häufige Fehler und Lösungen

  • Fehler: ListView bleibt leer
    Lösung: Stelle sicher, dass Du die Daten korrekt hinzufügst. Überprüfe, ob die Daten in den Zellen wirklich vorhanden sind.

  • Fehler: Spaltenüberschriften werden nicht angezeigt
    Lösung: Achte darauf, dass die View-Eigenschaft auf 3 gesetzt ist. Diese Einstellung ist notwendig, um die Spaltenüberschriften anzuzeigen.


Alternative Methoden

Falls Du eine andere Art der Darstellung benötigst, kannst Du auch eine ListBox verwenden. Diese ist einfacher zu implementieren, bietet jedoch weniger Funktionalität als das ListView-Steuerelement.

Für einfache Listen kann die Verwendung einer ListBox ausreichend sein. Wenn Du jedoch mehr Kontrolle über die Darstellung und Interaktion benötigst, ist das ListView die bessere Wahl.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du das ListView in einer UserForm nutzen kannst:

Private Sub UserForm_Initialize()
    Dim x As Long
    With ListView1
        .ColumnHeaders.Add , , "Dateiname", 80
        .ColumnHeaders.Add , , "Erstellt am", 80
        .View = 3
        For x = 1 To 10
            .ListItems.Add , , Cells(x + 1, 1)
            .ListItems(x).SubItems(1) = Cells(x + 1, 2)
        Next
    End With
End Sub

Ein weiteres Beispiel für einen Doppelklick auf ein ListView-Element:

Private Sub ListView1_DblClick()
    Dim Pfad As String
    Pfad = ListView1.SelectedItem.ListSubItems(3).Text
    MsgBox Pfad
End Sub

Tipps für Profis

  • Verwende ListItems.Add mit Bedacht, um die Performance zu optimieren. Füge mehrere Elemente in einer Schleife hinzu, um die Benutzeroberfläche nicht unnötig zu belasten.
  • Experimentiere mit den verschiedenen View-Optionen des ListView-Steuerelements, um die beste Benutzererfahrung zu bieten.
  • Nutze das ListView in Verbindung mit anderen Steuerelementen in der UserForm, um komplexe Dateninteraktionen zu ermöglichen.

FAQ: Häufige Fragen

1. Wie kann ich die Größe des ListView anpassen?
Du kannst die Width-Eigenschaft des ListView-Steuerelements anpassen, um die Größe zu ändern. Beispiel:

ListView1.Width = 300

2. Ist das ListView-Steuerelement in allen Excel-Versionen verfügbar?
Das ListView-Steuerelement ist in den meisten Versionen von Excel VBA verfügbar. Stelle sicher, dass Du die richtige Referenz für das Steuerelement gesetzt hast.

3. Wie kann ich die Daten im ListView sortieren?
Das Sortieren der Daten im ListView kann über die SortKey-Eigenschaft und SortOrder erfolgen. Verwende die Sort-Methode des ListView, um die sichtbaren Daten zu sortieren.

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