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

Daten in Listview editieren

Forumthread: Daten in Listview editieren

Daten in Listview editieren
26.04.2014 11:45:53
basti_fantasti
Hallo Forum,
mit folgendem Code schreibe ich daten in eine Excel Tabelle:
Private Sub CommandButton1_click()
Sheets("profile").Select
Dim Zelle As Long
Dim I As Long
Zelle = Cells(Rows.Count, 1).End(xlUp).Row + 1
For I = 1 To 24
Cells(Zelle, I) = Controls("TextBox" & I)
Controls("TextBox" & I) = ""
Next
End Sub

Das funktioniert. Über ein Listview kann ich die Daten suchen und werden dann im Listview korrekt angezeigt. Ich würde gerne erreichen, dass beim Doppelklick die Daten aus dem Listview wieder in die Textboxen übernommen werden und ich diese ändern kann, ohne das Sie in der nächsten Reihe wieder neu geschrieben werden, sondern das die ausgewählte "Datenreihe" dementsprechend abgeändert wird. Und is es auch möglich, dass ich die Daten an richtige Stelle schreibe, ohne das Arbeitsblatt immer mit .select auszuwählen. Geht das nicht mit Sheets("Profile")? Vielen Dank für eure Hilfe und Grüße
Basti_fantasti

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Daten in Listview editieren
26.04.2014 13:35:30
Tino
Hallo,
zu 1.
evtl. im Listview in einer ausgeblendeten Spalte die Herkunft der Daten ablegen,
dann kann beim zurückschreiben Bezug auf diese genommen werden.
Dazu müsste ich aber den Aufbau kennen, evtl. ein Beispiel mit diesem Listview hochladen.
zu 2.
Referenziere Deine Daten/Zellen auf diese Tabelle.
Dim Zelle As Long
Dim I As Long
With Sheets("profile")
Zelle = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
For I = 1 To 24
.Cells(Zelle, I) = Controls("TextBox" & I)
Controls("TextBox" & I) = ""
Next
End With
Gruß Tino

Anzeige
AW: Daten in Listview editieren
26.04.2014 14:04:10
basti_fantasti
Hier mal die Liste:
https://www.herber.de/bbs/user/90352.xlsm
Wobei alle Elemente zur Eingabe Textbox heissen. Also auch die Combo- und Checkboxes.
Die Suchfunktion, mit der du mir bereits schon geholfen hast, ist da auch schon drin. Also Ziel ist jetzt, wenn ich nen doppelklick auf den markierten Listvieweintrag machen, die Daten wieder in die Textboxes komme ich sie bearbeite und wenn ich auf Save klicke, die Daten nicht neu eingetragen, sondern geändert werden.
PS: Die suchfunktion funktioeniert perfekt.
Grüße
Basti_fantasti

Anzeige
AW: Daten in Listview editieren
26.04.2014 15:31:26
Tino
Hallo,
Du hast ein 64bit System ich aber nicht,
daher werden die Elemente die nicht verfügbar sind gelöscht.
Kannst Du mal Zeigen wo dieses Listview sich bei dir befindet und wie es heißt?
Dann könnte ich es bei mir einbauen.
Gruß Tino

AW: Daten in Listview editieren
26.04.2014 15:39:07
basti_fantasti
Hey Tino,
das Listview heisst Listview1 und ist auf einer Userform in der Multipage. Ich hoffe dass hilft dir weiter.
Viele Grüße
Basti_fantasti

Anzeige
AW: Daten in Listview editieren
26.04.2014 16:36:51
Tino
Hallo,
habe mal versucht was einzubauen kannst mal testen ob es so hinkommt.
(nicht ausgiebig getestet)
https://www.herber.de/bbs/user/90354.xlsm
Gruß Tino

AW: Daten in Listview editieren
26.04.2014 18:09:41
Tino
Hallo,
da ich jetzt keine Zeit mehr habe, stell ich noch eine zweite Variante rein.
Vielleicht gehts ja so?
https://www.herber.de/bbs/user/90355.xlsm
Gruß Tino

Anzeige
warum 2 Beiträge? owT
26.04.2014 17:25:32
robert
;
Anzeige
Anzeige

Infobox / Tutorial

Daten in Listview editieren


Schritt-für-Schritt-Anleitung

Um Daten aus einem Listview in Textboxen zu editieren und anschließend zurückzuschreiben, kannst Du die folgenden Schritte ausführen:

  1. Daten in Excel schreiben: Verwende den folgenden VBA-Code, um Daten von Textboxen in ein Excel-Arbeitsblatt zu übertragen:

    Private Sub CommandButton1_click()
       Dim Zelle As Long
       Dim I As Long
       With Sheets("profile")
           Zelle = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
           For I = 1 To 24
               .Cells(Zelle, I) = Controls("TextBox" & I)
               Controls("TextBox" & I) = ""
           Next
       End With
    End Sub
  2. Daten aus dem Listview in Textboxen laden: Füge einen Doppelklick-Event für das Listview hinzu, um die ausgewählten Daten in die Textboxen zu laden:

    Private Sub ListView1_DblClick()
       Dim I As Long
       For I = 1 To 24
           Controls("TextBox" & I) = ListView1.ListItems(ListView1.SelectedItem.Index).SubItems(I - 1)
       Next
    End Sub
  3. Ändern und Speichern der Daten: Um die bearbeiteten Daten wieder in die Excel-Tabelle zu schreiben, kannst Du den folgenden Code verwenden:

    Private Sub CommandButton_Save_Click()
       Dim Zelle As Long
       Zelle = ListView1.SelectedItem.Index + 1 ' Index anpassen, wenn notwendig
       For I = 1 To 24
           Sheets("profile").Cells(Zelle, I) = Controls("TextBox" & I)
       Next
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Daten werden nicht angezeigt.

    • Lösung: Stelle sicher, dass die Listview korrekt mit den Daten gefüllt ist und die Indizes in den Doppelklick-Events korrekt referenziert werden.
  • Fehler: Excel stürzt ab oder gibt Fehler aus.

    • Lösung: Überprüfe die Referenzen auf die Textboxen und Listview-Elemente. Achte darauf, dass die Anzahl der Textboxen mit der Anzahl der Spalten in der Excel-Tabelle übereinstimmt.

Alternative Methoden

Eine alternative Methode zur Bearbeitung der Daten könnte die Verwendung von ActiveX-Steuerelementen oder Formularsteuerelementen sein, die eine ähnliche Funktionalität bieten, jedoch möglicherweise einfacher zu implementieren sind.


Praktische Beispiele

Hier sind einige Beispiele zur Anwendung:

  • Beispiel 1: Wenn Du eine Liste von Kontakten verwaltest, kannst Du die Namen, Adressen und Telefonnummern in einem Listview darstellen und bei Doppelklick die Details zur Bearbeitung in Textboxen laden.

  • Beispiel 2: Bei einer Produktverwaltung kannst Du die Produktinformationen im Listview anzeigen und diese bei Bedarf bearbeiten und speichern.


Tipps für Profis

  • Nutze die With-Anweisung, um den Code leserlicher zu gestalten und die Performance zu verbessern.
  • Berücksichtige, dass Du auch weitere Steuerelemente wie ComboBoxen oder CheckBoxes zur Erfassung zusätzlicher Informationen verwenden kannst.
  • Setze die Sichtbarkeit der Spalten im Listview gezielt ein, um die Benutzeroberfläche zu optimieren und nur relevante Informationen anzuzeigen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Daten im Listview aktualisiert werden?
Verwende die Methode ListView1.ListItems.Clear vor dem Füllen des Listviews, um sicherzustellen, dass alte Daten gelöscht werden.

2. Ist der Code in allen Excel-Versionen kompatibel?
Der bereitgestellte VBA-Code sollte in den meisten Versionen von Excel funktionieren, insbesondere in Excel 2010 und später. Achte darauf, dass Du die richtigen Referenzen gesetzt hast, insbesondere wenn Du 64-Bit-Systeme 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