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

ListView Einträge in Tabelle übernehmen

Forumthread: ListView Einträge in Tabelle übernehmen

ListView Einträge in Tabelle übernehmen
26.11.2016 14:14:55
Ludmila
Hallo,
leider finde ich nicht heraus wie ich in einer ListView, die als Checkbox gekennzeichneten Zeilen in eine Tabelle übertragen kann.
Mehrfach Markierungen sollen möglich sein.
Was ist falsch an "Format(Tabelle1.Cells(ii, 6), "#,##0.00 €")" Bibliothek nicht gefunden.
Danke!
Gruß,
Ludmila
https://www.herber.de/bbs/user/109734.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ListView Einträge in Tabelle übernehmen
26.11.2016 15:27:43
Christian
Hallo,
zB so:
Private Sub CommandButton3_Click()
Dim wks2 As Worksheet
Dim i As Long, j As Long, k As Long
Dim vntTmp()
Set wks2 = Sheets("Tabelle2")
With Me.ListView1
For i = 1 To .ListItems.Count
If .ListItems(i).Checked Then
ReDim Preserve vntTmp(5, k)
vntTmp(0, k) = .ListItems(i)
For j = 1 To 5
vntTmp(j, k) = .ListItems(i).SubItems(j)
Next
k = k + 1
End If
Next
End With
wks2.Cells(2, 1).Resize(k, 6) = Application.Transpose(vntTmp)
Set wks2 = Nothing
End Sub

Gruß
Christian
Anzeige
AW: ListView Einträge in Tabelle übernehmen
26.11.2016 15:42:55
Ludmila
Hallo Christian,
funktioniert einwandfrei.
Vielen Dank!
Gruß
Ludmila
;
Anzeige
Anzeige

Infobox / Tutorial

ListView Einträge in Tabelle übernehmen


Schritt-für-Schritt-Anleitung

Um die Einträge aus einer ListView in eine Tabelle zu übertragen, kannst du den folgenden VBA-Code verwenden. Dies ermöglicht es dir, mehrere Einträge auszuwählen und in eine Excel-Tabelle zu übertragen.

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".
  3. Kopiere den folgenden VBA-Code in das Modul:
Private Sub CommandButton3_Click()
    Dim wks2 As Worksheet
    Dim i As Long, j As Long, k As Long
    Dim vntTmp()
    Set wks2 = Sheets("Tabelle2")
    With Me.ListView1
        For i = 1 To .ListItems.Count
            If .ListItems(i).Checked Then
                ReDim Preserve vntTmp(5, k)
                vntTmp(0, k) = .ListItems(i)
                For j = 1 To 5
                    vntTmp(j, k) = .ListItems(i).SubItems(j)
                Next
                k = k + 1
            End If
        Next
    End With
    wks2.Cells(2, 1).Resize(k, 6) = Application.Transpose(vntTmp)
    Set wks2 = Nothing
End Sub
  1. Stelle sicher, dass deine ListView korrekt eingerichtet ist und die Checkboxen aktiviert sind.
  2. Füge einen CommandButton zu deiner UserForm hinzu und weise ihm das oben genannte Makro zu.

Häufige Fehler und Lösungen

  • Fehler: "Bibliothek nicht gefunden."

    • Lösung: Stelle sicher, dass alle benötigten Bibliotheken in deinem VBA-Projekt aktiviert sind. Gehe zu "Extras" > "Verweise" und überprüfe, ob die erforderlichen Bibliotheken ausgewählt sind.
  • Fehler: Leere Zellen in der Tabelle

    • Lösung: Überprüfe, ob die ListItems tatsächlich ausgewählt sind. Achte darauf, dass die Checkboxen in deiner ListView korrekt markiert sind.

Alternative Methoden

Falls du eine andere Methode zur Übertragung der ListView-Daten in eine Excel-Tabelle verwenden möchtest, kannst du auch die Copy- und Paste-Methoden in VBA nutzen.

Hier ein Beispiel:

Dim rng As Range
Set rng = wks2.Range("A2").Resize(k, 6)
rng.Value = vntTmp

Diese Methode kann dir helfen, die Daten effizienter zu übertragen, besonders wenn du mit großen Datenmengen arbeitest.


Praktische Beispiele

Ein häufiges Szenario ist die Verwendung einer ListView zur Auswahl von Produkten, die in eine Bestelltabelle übertragen werden sollen. Hier ein Beispiel für die ListView-Konfiguration:

  • Spalte 1: Produktname
  • Spalte 2: Preis
  • Spalte 3: Menge
  • Spalte 4: Gesamt

In diesem Fall kannst du den oben genannten Code verwenden, um alle ausgewählten Produkte in die Tabelle zu übertragen.


Tipps für Profis

  • Nutze die Debug.Print-Funktion, um den Status deiner Variablen während der Ausführung des Codes zu überprüfen.
  • Vermeide globale Variablen, wenn du nur lokale Daten benötigst. Das macht deinen Code sicherer und effizienter.
  • Experimentiere mit der Formatierung der Zellen in der Tabelle, um die Lesbarkeit der Daten zu verbessern, z.B. durch die Verwendung von Format-Anweisungen.

FAQ: Häufige Fragen

1. Frage Wie kann ich sicherstellen, dass nur die markierten Einträge in die Tabelle übertragen werden?

Antwort Der angegebene VBA-Code überprüft, ob die Checkbox des ListItems aktiviert ist, und überträgt nur diese Einträge in die Tabelle.

2. Frage Funktioniert dieser Code in allen Excel-Versionen?

Antwort Ja, der Code sollte in den meisten modernen Excel-Versionen (ab 2007) funktionieren, die VBA unterstützen. Stelle sicher, dass du die richtige Version verwendest.

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