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

Forumthread: Array in Listview einlesen

Array in Listview einlesen
22.11.2022 09:02:25
Thomas
Hallo zusammen,
ich möchte in einem meiner Userform eine Listbox durch das Listview Element ersetzen. Die Daten kommen aus einem Array vom Typ Variant. bei der Listbox ging das ganz einfach über den Befehl Listbox.List = Arrayname. Kennt jemand die einfachste Möglichkeit die Daten in die Listview zu schreiben?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array in Listview einlesen
22.11.2022 09:55:58
Oberschlumpf
Hi Thomas,
mit Suchtext "vba listview mit array füllen" in Google werden doch viele Treffer angezeigt.
Und ist z Bsp der Treffer von www.ms-office-forum.net nicht schon was für dich?
Ciao
Thorsten
...wenn alles nix hilft, zeig bitte ne Bsp-Datei...
AW: Array in Listview einlesen
22.11.2022 10:20:58
Der
Hallo,
ich meine mich zu erinnern, dass das beim Listview-Control nicht geht ... bleibt also nur der Weg über eine Schleife mit Listview.Add.
Grüße
Michael
Anzeige
AW: Array in Listview einlesen
22.11.2022 10:39:30
Rudi
Hallo,
das geht nur mit einer Schleife durch das Array.
Gruß
Rudi
AW: Array in Listview einlesen
22.11.2022 21:30:00
Alwin
Hallo Thomas,
schau dir mal die Datei an:
https://www.herber.de/bbs/user/155905.xlsm
auf:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1904798
Das hatte ich vor kurzem aus einem anderen Grund hier hochgeladen um zu helfen.
Da wird das Array mittels Listview1.ListItems.Add und die Spalten Listview1.ListItems(.ListItems.Count).SubItems(1 etc.) in die Listview übergeben.
Gruß Uwe
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Array in Listview einlesen in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Array in ein Excel Listview zu füllen, musst Du einige Schritte befolgen. Diese Anleitung setzt voraus, dass Du mit VBA in Excel vertraut bist und ein Userform mit einem Listview-Control besitzt.

  1. Füge ein Listview-Control hinzu: Öffne den VBA-Editor (ALT + F11), füge ein Userform hinzu und ziehe ein Listview-Control in das Userform.

  2. Initialisiere das Array: Erstelle ein Array, das die Daten enthält, die Du in das Listview einfügen möchtest. Beispiel:

    Dim myArray As Variant
    myArray = Array(Array("Item1", "Subitem1"), Array("Item2", "Subitem2"))
  3. Fülle das Listview: Verwende eine Schleife, um die Daten aus dem Array in das Listview zu übertragen:

    Dim i As Integer
    For i = LBound(myArray) To UBound(myArray)
        ListView1.ListItems.Add , , myArray(i)(0) ' Hauptitem
        ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = myArray(i)(1) ' Subitem
    Next i
  4. Setze die Spaltenüberschriften: Vergiss nicht, die Spaltenüberschriften für dein Listview zu definieren. Dies kannst Du im Userform-Ereignis Initialize tun.

    With ListView1
        .ColumnHeaders.Add , , "Hauptitem", 1000
        .ColumnHeaders.Add , , "Subitem", 1000
    End With

Häufige Fehler und Lösungen

  • Fehler: "Listview nicht initialisiert"

    • Lösung: Stelle sicher, dass das Listview-Control korrekt im Userform platziert ist und dass Du es im Code auch richtig referenzierst.
  • Fehler: "Subscript out of range"

    • Lösung: Überprüfe die Indizes Deines Arrays. Stelle sicher, dass Du die Grenzen des Arrays richtig verwendest.

Alternative Methoden

Wenn Du das Listview-Control in Excel VBA nicht verwenden möchtest, kannst Du auch ein HTML Listview in einem Webbrowser-Control verwenden. Dies erfordert jedoch Kenntnisse über HTML und CSS, um die Darstellung anzupassen.


Praktische Beispiele

Ein einfaches Beispiel, um ein Listview mit Excel VBA zu füllen, könnte so aussehen:

Private Sub UserForm_Initialize()
    Dim myArray As Variant
    myArray = Array(Array("Apfel", "Rot"), Array("Banane", "Gelb"), Array("Kirsche", "Rot"))

    With ListView1
        .ColumnHeaders.Add , , "Frucht", 1000
        .ColumnHeaders.Add , , "Farbe", 1000

        Dim i As Integer
        For i = LBound(myArray) To UBound(myArray)
            .ListItems.Add , , myArray(i)(0)
            .ListItems(.ListItems.Count).SubItems(1) = myArray(i)(1)
        Next i
    End With
End Sub

Tipps für Profis

  • Verwende die ListView-Eigenschaften wie View, um das Layout des Listview anzupassen (z.B. lvwReport für Berichtsansicht).
  • Experimentiere mit der ListItems-Sammlung, um dynamisch Daten zu ändern oder hinzuzufügen.
  • Denke daran, dass die Verwendung von SubItems eine gute Möglichkeit ist, zusätzliche Informationen in Deinem Listview darzustellen.

FAQ: Häufige Fragen

1. Wie kann ich ein Listview in Excel VBA gestalten?
Du kannst die Eigenschaften des Listview-Control im VBA-Editor anpassen, um das Aussehen zu ändern, wie z.B. View, FullRowSelect und GridLines.

2. Ist es möglich, Bilder in ein Listview einzufügen?
Ja, Du kannst Bilder in ein Listview einfügen, indem Du eine ImageList verwendest und die ListItems entsprechend anpasst.

3. Funktioniert dies in allen Excel-Versionen?
Ja, die grundlegenden Funktionen von VBA und das Listview-Control sind in den meisten Excel-Versionen verfügbar, allerdings können die genauen Schritte je nach Version variieren.

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