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

Forumthread: werte in listbox ändern

werte in listbox ändern
11.05.2004 17:49:51
simon
hallo Forum,
habe folgenden code:
' Dim strText As String
' Dim strTextAlt As String
' Dim i As Integer
' strText = Trim(txtNR.Text)
' If strText = "" Then
' MsgBox ("Bitte Text in Textbox eingeben!")
' txtNR.SetFocus
' Exit Sub
' End If
'
' With ListBox1
' If .ListIndex &gt -1 Then
' strTextAlt = .List(.ListIndex)
' .List(.ListIndex) = strText 'hier kommt Fehlermeldung
' MsgBox ("Der ListBox-Eintrag '" & strTextAlt & _
' "' wurde mit '" & strText & "' ersetzt!")
' Else
' MsgBox ("In der ListBox wurde kein Eintrag markiert !")
' End If
' End With
' txtNR.SetFocus
mit diesem Code möchte ich den Ausgewählten eintrag in der Listbox ändern
nur leider kommt immer eine fehlermeldung, ab der gekennzeichneten Zeile
ich hoffe mir kann jemand weiter Helfen
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: werte in listbox ändern
Ramses
Hallo
Wie füllst du die Listbox ?
Wenn die Listbox ihre Daten aus einer RowSource erhält, kannst du die Daten in der Listbox nicht ändern.
Das geht nur, wenn die Listbox mit "AddItem" ihre Daten erhalten hat.
Ansonsten stimmt dein Code
Gruss Rainer
danke, genau an dem lag es jetzt funkt.
11.05.2004 18:39:49
simon
.
Merci. Geschlossen o.T.
Ramses
...
Anzeige
;
Anzeige

Infobox / Tutorial

Werte in Listbox ändern: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um Werte in einer Listbox zu ändern, kannst du den folgenden VBA-Code verwenden. Stelle sicher, dass die Listbox mit AddItem gefüllt wird, da du sonst die Werte nicht ändern kannst.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu.
  3. Kopiere den nachfolgenden Code in das Modul:
Private Sub cmdAendern_Click()
    Dim strText As String
    Dim strTextAlt As String

    strText = Trim(txtNR.Text)
    If strText = "" Then
        MsgBox ("Bitte Text in Textbox eingeben!")
        txtNR.SetFocus
        Exit Sub
    End If

    With ListBox1
        If .ListIndex > -1 Then
            strTextAlt = .List(.ListIndex)
            .List(.ListIndex) = strText   ' Hier wird der Eintrag geändert
            MsgBox ("Der ListBox-Eintrag '" & strTextAlt & "' wurde mit '" & strText & "' ersetzt!")
        Else
            MsgBox ("In der ListBox wurde kein Eintrag markiert!")
        End If
    End With

    txtNR.SetFocus
End Sub
  1. Erstelle ein Textfeld (txtNR) und einen Button (cmdAendern) auf deinem Excel-Blatt.

Häufige Fehler und Lösungen

  • Fehlermeldung beim Ändern des Listbox-Eintrags: Wenn du eine Fehlermeldung erhältst, überprüfe, ob die Listbox über AddItem gefüllt wurde. Wenn die Listbox ihre Daten über eine RowSource erhält, kannst du die Werte nicht ändern.

  • Kein Eintrag markiert: Wenn du die Meldung erhältst, dass kein Eintrag markiert wurde, stelle sicher, dass du einen Eintrag in der Listbox ausgewählt hast, bevor du auf den Button klickst.


Alternative Methoden

Wenn du Daten in einer Listbox ändern möchtest, gibt es auch alternative Methoden:

  • Direkte Bearbeitung: Du könntest eine andere Benutzeroberfläche verwenden, um Daten zu bearbeiten und anschließend die Listbox zu aktualisieren.
  • Verwendung von Excel-Formeln: In einigen Fällen kann es sinnvoll sein, eine benutzerdefinierte Funktion zu verwenden, um Daten aus der Listbox in Excel-Zellen zu schreiben, wo du sie einfacher bearbeiten kannst.

Praktische Beispiele

Hier ist ein praktisches Beispiel, um die Funktionsweise zu verdeutlichen:

  1. Füge Items zur Listbox hinzu:

    ListBox1.AddItem "Eintrag 1"
    ListBox1.AddItem "Eintrag 2"
    ListBox1.AddItem "Eintrag 3"
  2. Verwende den vorherigen Code, um einen der Einträge zu ersetzen.


Tipps für Profis

  • Datenvalidierung: Implementiere eine Datenvalidierung, bevor du den Eintrag in der Listbox änderst, um sicherzustellen, dass die Eingabe korrekt ist.
  • Interaktive Benutzeroberfläche: Überlege, eine UserForm zu erstellen, um die Benutzererfahrung zu verbessern. Eine UserForm kann eine bessere Kontrolle über die Eingaben bieten.

FAQ: Häufige Fragen

1. Warum kann ich die Listbox nicht ändern? Wenn die Listbox mit einer RowSource gefüllt ist, kannst du die Werte nicht ändern. Stelle sicher, dass du AddItem verwendest.

2. Wie kann ich mehrere Einträge gleichzeitig ändern? Du kannst eine Schleife verwenden, um durch die Listbox-Elemente zu iterieren und sie nach Bedarf zu ändern.

3. Was mache ich, wenn ich keine Fehlermeldung erhalte, aber der Eintrag nicht ändert? Überprüfe, ob der ListIndex tatsächlich gesetzt ist und ob der Text in der Textbox korrekt eingegeben wurde.

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