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

Daten über ListView-Objekt ändern, geht das?

Forumthread: Daten über ListView-Objekt ändern, geht das?

Daten über ListView-Objekt ändern, geht das?
06.03.2015 04:50:54
Kasimir
Hallo an alle Helfer!
Ich habe da mal eine Frage zu dem ListView Objekt. In einer UserForm zeigt das ListView in 39 Spalten Daten einer Auflistung an. Meine Frage nun, kann ich das ListView auch dazu benutzen um Daten dieser Auflistung zu ändern. Was ich genau meine: Kann ich in einer „Zelle“ (ich weiß jetzt nicht, ob man das Zelle nennt) der ListView einen vorhandenen Eintrag abändern, also etwas in eine Zelle eintragen, so dass der dann auch in dem Tabellenblatt in der Auflistung abgeändert wird?
Wenn das geht, wie stelle ich das an
Danke Euch schon mal für die Unterstützung,
Kasimir

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
06.03.2015 05:48:23
Luschi
Hallo Kasimir,
ich mache das immer so:
- Tabellendaten im ListView-Objekt des Formulars anzeigen
- per Doppelklick auf eine ListView-Zeile ein 2. Formular öffnen und dort die Daten
  in Textboxen schreiben
- hier die Werte ändern
- bei 'OK' Daten in die Tabelle schreiben
- ListView neu einlesen
Gruß von Luschi
aus klein-Paris
PS: Ist zwar erst mal nur Theorie, aber wenn du eine Demodatei hast, dann her damit!

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
06.03.2015 10:14:22
Kasimir
Hallo Luschi!
Danke Dir für Deine Antwort. Um das mit den Textfeldern zu umgehen, bei mir wären es ja 39 Stück, hatte ich eben die Idee, ob die Eingabe direkt in dem ListView-Objekt möglich ist. Wenn das nicht geht, muss ich wohl auf die Variante von Dir oder ahnliches zurückgreifen.
Nochmal vielen Dank,
Kasimir

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
06.03.2015 10:31:17
Nepumuk
Hallo,
über die LabelEdit-Eigenschaft kannst du steuern ob die Items editierbar sind oder nicht.
lvwManual ~ Label können nur manuell editiert werden wenn du zuvor die StartLabelEdit-Methode angewendet hast
lvwAutomatic ~ Label kann immer editiert werden.
Siehe auch: https://msdn.microsoft.com/en-us/library/aa239004(v=vs.60).aspx
Um die Änderung in die Tabelle zu bringen kannst du das AfterLabelEdit-Event benutzen.
Gruß
Nepumuk

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
06.03.2015 19:07:35
Kasimir
Hallo Nepumuk!
Sorry, dass ich erst so spät reagiere, hatte aber vorher zu tun. Danke Dir erst mal für Deine Antwort.
Die Eigenschaft „LabelEdit“ steht auf „lvwAutomatic“. Allerdings kann ich nur in der 1. Spalte etwas ändern. In den anderen Spalten passiert nichts, bzw. ich kann dort nichts eintragen. Woran kann denn das liegen?
Danke nochmal,
Kasimir

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
06.03.2015 19:35:03
Nepumuk
Hallo,
so ein Mist. Ich hab das noch nie benutz, daher wusste ich das auch nicht. Ich hab jetzt nur eine Methode gefunden bei der über das zu editierende SubItem eine TextBox gelegt wird. Ein ganz schöner Aufwand :-( . Dann doch besser eine eigene Form zum editieren aller Items einer Zeile. :-/
Gruß
Nepumuk

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
07.03.2015 07:13:46
Kasimir
Hallo Nepumuk!
Danke Dir für Deine Antwort. Da siehste mal, dass ein Excelprofi wie Du, hier auch noch etwas durch die Fragen Hilfloser etwas lernst. ;-)
Dann werde ich mich wohl doch mit dem Gedanken anfreunden müssen, eine UserForm mit 39 Textfeldern anzulegen, über die ich dann die Daten ändern kann. Problem ist halt nur, wenn eine oder zwei Spalten hinzukommen, dann muss ich die UserForm ebenfalls erweitern. Oder kann man das etwa so automatisieren, dass eine UserForm immer für die Anzahl Spalten Textfelder zur Verfügung stellt?
Danke nochmal und Gruß;
Kasimir

Anzeige
AW: Daten über ListView-Objekt ändern, geht das?
07.03.2015 07:25:02
Nepumuk
Hallo Kasimir,
natürlich kannst du ein UserForm dynamisch mit Controls bestücken. Google einfach mal danach. Wenn du Probleme hast dann kann ich dir dabei helfen.
Gruß
Nepumuk

AW: Daten über ListView-Objekt ändern, geht das?
07.03.2015 07:31:17
Kasimir
Hallo Nepumuk!
Danke nochmal für die Antwort. Ich werde hier mal in der Recherche nachschauen, die Schlagwörter habe ich ja jetzt. Bei Problemen gibt's nen neuen Beitrag.
Schönes Wochenende Dir,
Kasimir
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenänderungen im Excel ListView Objekt vornehmen


Schritt-für-Schritt-Anleitung

Um Daten über das ListView-Objekt in Excel zu ändern, kannst Du die folgenden Schritte befolgen:

  1. ListView in einer UserForm erstellen: Erstelle eine UserForm und füge das ListView-Steuerelement hinzu.
  2. Daten einfügen: Fülle das ListView mit den Daten aus Deinem Excel-Arbeitsblatt.
  3. LabelEdit-Eigenschaft aktivieren: Setze die LabelEdit-Eigenschaft des ListView auf lvwAutomatic, damit alle Items editierbar sind.
  4. AfterLabelEdit-Event nutzen: Implementiere das AfterLabelEdit-Event, um die Änderungen, die im ListView vorgenommen werden, direkt in das Excel-Arbeitsblatt zurückzuschreiben.
  5. Testen: Führe die UserForm aus und teste die Änderungen im ListView.

Hier ist ein Beispiel für das AfterLabelEdit-Event:

Private Sub ListView1_AfterLabelEdit(ByVal Cancel As Boolean)
    Dim editedItem As String
    editedItem = ListView1.SelectedItem.Text
    ' Aktualisiere das entsprechende Excel-Arbeitsblatt
    Worksheets("DeinTabellenblatt").Cells(1, 1).Value = editedItem
End Sub

Häufige Fehler und Lösungen

  1. Nur die erste Spalte ist editierbar:

    • Überprüfe die LabelEdit-Eigenschaft des ListView. Stelle sicher, dass sie auf lvwAutomatic gesetzt ist.
  2. Änderungen werden nicht gespeichert:

    • Stelle sicher, dass das AfterLabelEdit-Event korrekt implementiert ist und die Daten tatsächlich in das Arbeitsblatt geschrieben werden.
  3. ListView nicht aktualisiert:

    • Wenn Du nach Änderungen das ListView nicht neu lädst, werden die Änderungen nicht sichtbar. Stelle sicher, dass Du das ListView nach der Datenänderung neu einliest.

Alternative Methoden

Falls Du die Eingabe direkt im ListView vermeiden möchtest, kannst Du eine alternative Methode verwenden:

  • Öffne ein zweites Formular: Bei einem Doppelklick auf eine ListView-Zeile kannst Du ein zweites Formular öffnen, das Textboxen für jede Spalte bereitstellt. Dort kannst Du die Daten bearbeiten und anschließend zurück in das ListView und das Excel-Arbeitsblatt schreiben.

Praktische Beispiele

  1. Datenänderung über ein zweites Formular:

    • Erstelle ein Formular mit 39 Textboxen, die den Spalten des ListViews entsprechen. Übertrage die Werte über Schaltflächen zurück in das ListView und das Excel-Arbeitsblatt.
  2. Dynamisches UserForm:

    • Du kannst ein UserForm erstellen, das dynamisch Textboxen basierend auf der Anzahl der Spalten im ListView generiert. Dies ist besonders nützlich, wenn sich die Anzahl der Spalten ändern kann.

Tipps für Profis

  • Automatisierung: Überlege, wie Du die UserForm dynamisch anpassen kannst, um Änderungen an der Anzahl der Spalten zu berücksichtigen.
  • Fehlerbehandlung: Implementiere grundlegende Fehlerbehandlungen, um sicherzustellen, dass die Benutzer keine ungültigen Daten eingeben.
  • Verwendung von VBA: Nutze die Möglichkeiten von VBA, um die Benutzeroberfläche zu verbessern und die Funktionalität des ListView zu erweitern.

FAQ: Häufige Fragen

1. Frage Wie kann ich die UserForm dynamisch anpassen, wenn sich die Anzahl der Spalten ändert?

Antwort Du kannst die Controls in der UserForm zur Laufzeit hinzufügen oder entfernen, indem Du die Controls.Add-Methode verwendest. So kannst Du sicherstellen, dass die Anzahl der Textboxen immer der Anzahl der Spalten im ListView entspricht.

2. Frage Kann ich TextBoxen über das ListView legen, um Änderungen vorzunehmen?

Antwort Ja, das ist möglich, allerdings ist es umständlich. Es ist einfacher, ein separates Formular zu verwenden, um die Daten zu bearbeiten. Die Verwendung von TextBoxen über dem ListView erfordert zusätzliche Programmierung und kann die Benutzeroberfläche komplizierter machen.

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