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

listbox eingabe mit enter

Forumthread: listbox eingabe mit enter

listbox eingabe mit enter
15.06.2003 13:10:39
IVAN
hi alle
ich habe es gerade geschafft(mit nepumuks hilfe)
einträge in textboxen zu ändern!
mit einem commandbutton1
wie kann ich die änderungen in der textbox mit der ENTER taste
bestätigen um nicht den commandbutton1 zu betätigen??
MEIN CODE:
Private Sub CommandButton1_Click()
Cells(ListBox2.Value, 1) = txtNachname
Cells(ListBox2.Value, 2) = txtVorname
Cells(ListBox2.Value, 3) = txtPlz
Cells(ListBox2.Value, 4) = txtOrt
Cells(ListBox2.Value, 5) = txtAdresse
Cells(ListBox2.Value, 6) = txtTelefon
Cells(ListBox2.Value, 7) = txtHandy
Cells(ListBox2.Value, 8) = txtFax
Cells(ListBox2.Value, 9) = txtEmail
Cells(ListBox2.Value, 10) = txtKennung
Cells(ListBox2.Value, 11) = txtAnmerkung
End Sub
danke
ivan

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: listbox eingabe mit enter
15.06.2003 13:12:52
L.Vira

Commandbutton default = True

Re: listbox eingabe mit enter
15.06.2003 13:14:02
Nepumuk

Hallo Ivan,
dann musst du aber für jede TextBox eine Routine schreiben. So z.B.

Gruß
Nepumuk

Re: listbox eingabe mit enter
15.06.2003 13:40:44
IVAN

hi nepumuk
ich habe für jede textbox

Private Sub txtNachname_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then Cells(ListBox2.Value, 1) = txtNachname
End Sub

angelgt und genau den value und den txtnamen angepasst!
wenn ich einmal eine änderung vornehme dan funkt es .
sobald ich jedoch eine zweite änderung durchführe bekomme ich den fehler typen unverträglich??
was mache ich da falsch??
DANKE
ivan


Anzeige
Re: listbox eingabe mit enter
15.06.2003 13:45:31
IVAN

hi
danke auch für deine antwort
aber das hab ich nicht gemeint lol
ivan

Re: listbox eingabe mit enter
15.06.2003 20:51:23
Nepumuk

Hallo Ivan,
das kann ich leider nicht nachvollziehen. Ich kann es so oft machen wie ich will, ich bekomme keine Fehlermeldung.
Gruß
Nepumuk

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Listbox Eingabe mit Enter in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Eingabe in einer Listbox in Excel VBA mit der Enter-Taste zu bestätigen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den Visual Basic for Applications-Editor zu öffnen.

  2. Füge eine UserForm hinzu: Klicke mit der rechten Maustaste in den Projekt-Explorer und wähle Einfügen > UserForm.

  3. Füge eine ListBox und TextBoxen hinzu: Ziehe eine ListBox und mehrere TextBoxen (txtNachname, txtVorname, etc.) auf die UserForm.

  4. Erstelle einen CommandButton: Füge einen CommandButton (CommandButton1) hinzu, um die Änderungen zu speichern.

  5. Implementiere die KeyDown-Ereignisse: Für jede TextBox musst du das KeyDown-Ereignis implementieren. Hier ein Beispiel für die TextBox txtNachname:

    Private Sub txtNachname_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       If KeyCode = 13 Then ' 13 ist der Code für die Enter-Taste
           Cells(ListBox2.Value, 1) = txtNachname
       End If
    End Sub
  6. Wiederhole den Prozess: Wiederhole diesen Schritt für jede TextBox und passe den Code entsprechend an.

  7. Testen: Starte die UserForm und teste die Eingabe der Daten mit der Enter-Taste.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der auftreten kann, ist der "Typen unverträglich"-Fehler. Dieser tritt häufig auf, wenn der Datentyp in der TextBox nicht mit dem erwarteten Datentyp in der Zelle übereinstimmt. Hier sind einige Lösungen:

  • Überprüfe die Datentypen: Stelle sicher, dass die Daten, die du in die Zellen schreibst, den richtigen Datentyp haben. Wenn eine Zelle beispielsweise nur Zahlen akzeptiert, achte darauf, dass die TextBox nur Zahlen enthält.
  • Fehlerbehandlung hinzufügen: Du kannst eine einfache Fehlerbehandlung in deinen Code einfügen, um den Fehler abzufangen:

    On Error Resume Next
    Cells(ListBox2.Value, 1) = txtNachname
    If Err.Number <> 0 Then
       MsgBox "Fehler: " & Err.Description
       Err.Clear
    End If

Alternative Methoden

Wenn du die Eingaben nicht über die Enter-Taste bestätigen möchtest, gibt es auch andere Möglichkeiten:

  • CommandButton: Du kannst den CommandButton verwenden, um die Änderungen zu speichern. Das ist die einfachste Methode, wenn du keine Tastatureingabe nutzen möchtest.
  • Ändere den Standard-CommandButton: Setze die Default-Eigenschaft des CommandButtons auf True, sodass er beim Drücken der Enter-Taste aktiv wird.

Praktische Beispiele

Hier ist ein vollständiges Beispiel, wie der Code für mehrere TextBoxen aussehen könnte:

Private Sub txtNachname_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Cells(ListBox2.Value, 1) = txtNachname
    End If
End Sub

Private Sub txtVorname_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Cells(ListBox2.Value, 2) = txtVorname
    End If
End Sub

' Füge ähnliche Sub-Prozeduren für die anderen TextBoxen hinzu

Tipps für Profis

  • Nutze die Select Case-Anweisung: Wenn du viele TextBoxen hast, kann es hilfreich sein, die Eingabeverarbeitung mit einer Select Case-Anweisung zu organisieren.
  • Verwende Trim: Um sicherzustellen, dass keine Leerzeichen gespeichert werden, kannst du die Eingabe in der TextBox vor dem Speichern trimmen:

    Cells(ListBox2.Value, 1) = Trim(txtNachname)

FAQ: Häufige Fragen

1. Warum funktioniert mein Code nicht, wenn ich ihn mehrmals ausführe? Das kann an einer falschen Handhabung der ListBox-Werte liegen. Stelle sicher, dass der Wert in der ListBox korrekt gesetzt ist, bevor du die Eingaben speicherst.

2. Was kann ich tun, wenn ich den "Typen unverträglich"-Fehler erhalte? Überprüfe die Datentypen der Werte, die du in die Zellen schreibst. Verwende eine Fehlerbehandlung, um diesen Fehler abzufangen und eine aussagekräftige Fehlermeldung anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige