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

Ereignis nach Eingabe in Textbox

Forumthread: Ereignis nach Eingabe in Textbox

Ereignis nach Eingabe in Textbox
René
Hallo,
ich möchte das nach Eingeben eines Textes in einer Textbox ein Ereignis ausgelöst wird.
Es soll aber erst ausgelöst werden wenn der ganze Text eingetragen ist.
Bei If Textbox1.Value ""
geht das Ereignis schon los wenn ich den ersten Buchstabe eingebe.
Könnt ihr mir bitte einen Tipp geben.
Danke René
Anzeige
AW: Ereignis nach Eingabe in Textbox
22.07.2011 14:15:14
Hajo_ZI
Hallo Rene,
benutze das richtige Ereignis Exit oder AfterUpdate

Private Sub TextBox1_AfterUpdate()
22.07.2011 14:18:37
NoNet
Hallo René,
vermutlich verwendest Du das CHANGE() Ereignis anstelle AFTERUPDATE() ?
Probiere es mal so :
Private Sub TextBox1_AfterUpdate()
MsgBox "Textboxinhalt geändert :" & vbLf & TextBox1.Value
End Sub
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
AW: Private Sub TextBox1_AfterUpdate()
22.07.2011 14:23:09
René
Hallo NoNet,
oh das interessiert mich sehr.
Wie läuft so ein Treffen ab? Was macht ihr da alles so?
Kann ich da wirklich teilnehmen. Würde gern mal die Profis treffen die mir hier immer helfen. Habe durch Euch schon viele kleine Programme schreiben können.
Ich wohne in der Nähe von Chemnitz und bräuchte keine Übernachtung.
MfG René
Anzeige
AW: Private Sub TextBox1_AfterUpdate()
22.07.2011 14:24:13
René
Kann mich garnicht mit dem Anmeldeformular anmelden. Zugriff gesperrt!!!
du musst dich registrieren. owT
22.07.2011 14:33:15
Rudi
und bräuchte keine Übernachtung
22.07.2011 14:34:59
Rudi
Hallo,
aber ein Taxi ;-)
Gruß
Rudi
Anzeige
..oder 'bleifreien Sprit' ;-))
22.07.2011 15:08:35
NoNet
Mit "bleifreiem Sprit" (z.B. direkt aus Sachsen) lässt es sich auch gut selbst nach Hause fahren, wenn man denn überhaupt noch heim möchte - nachdem man schon einmal bei einem Exceltreffen dabei war...

Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...


Anzeige
AW: ..oder 'bleifreien Sprit' ;-))
22.07.2011 15:23:00
René
Ich werde mich anmelden
Mich interessieren schon die fleißigen klugen Köpfe die hier am Werke sind.
Schönes We René
;
Anzeige
Anzeige

Infobox / Tutorial

Ereignis in einer Textbox auslösen


Schritt-für-Schritt-Anleitung

Um ein Ereignis nach Eingabe eines Textes in einer Textbox auszulösen, kannst Du die AfterUpdate-Ereignisprozedur in VBA verwenden. Folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Wähle das entsprechende Formular aus, das die Textbox enthält.

  3. Klicke auf die Textbox, für die Du das Ereignis erstellen möchtest.

  4. Füge den folgenden Code in das Codefenster der Textbox ein:

    Private Sub TextBox1_AfterUpdate()
       MsgBox "Textboxinhalt geändert: " & vbLf & TextBox1.Value
    End Sub
  5. Schließe den VBA-Editor und teste die Funktion, indem Du einen Text in die Textbox eingibst und dann die Eingabetaste drückst oder die Textbox verlässt.


Häufige Fehler und Lösungen

  • Ereignis wird zu früh ausgelöst: Wenn Du das Change-Ereignis verwendest, wird es bei jeder Änderung in der Textbox ausgelöst. Stelle sicher, dass Du AfterUpdate verwendest, um das Ereignis erst nach vollständiger Eingabe auszulösen.

  • Textbox ist nicht verknüpft: Überprüfe, ob die Textbox richtig im Formular platziert ist und keine anderen Steuerelemente die Eingabe behindern.


Alternative Methoden

Falls Du eine andere Methode bevorzugst, kannst Du auch das Exit-Ereignis verwenden, um das gleiche Ergebnis zu erzielen. Hier ist ein Beispiel:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    MsgBox "Textboxinhalt geändert: " & vbLf & TextBox1.Value
End Sub

Diese Methode wird ausgelöst, wenn Du die Textbox verlässt, nachdem Du einen Text eingegeben hast.


Praktische Beispiele

  1. Ereignis mit Datenbankverbindung: Wenn Du die eingegebenen Daten in einer Datenbank speichern möchtest, kannst Du den AfterUpdate-Code erweitern, um die Daten zu verarbeiten.

    Private Sub TextBox1_AfterUpdate()
       ' Beispiel: Daten in eine Datenbank speichern
       Dim db As Database
       Set db = OpenDatabase("DeineDatenbank.mdb")
       db.Execute "INSERT INTO DeineTabelle (Feldname) VALUES ('" & TextBox1.Value & "')"
       MsgBox "Daten gespeichert!"
    End Sub
  2. Ereignis mit Validierung: Du kannst auch eine Validierung einbauen, bevor die Nachricht angezeigt wird:

    Private Sub TextBox1_AfterUpdate()
       If TextBox1.Value <> "" Then
           MsgBox "Textboxinhalt geändert: " & vbLf & TextBox1.Value
       Else
           MsgBox "Bitte einen gültigen Text eingeben."
       End If
    End Sub

Tipps für Profis

  • Ereignisprozeduren benennen: Achte darauf, die Textbox-Ereignisprozeduren klar zu benennen, um die Wartung zu erleichtern.
  • Debugging-Tools nutzen: Verwende Debug.Print, um den Inhalt der Textbox während der Entwicklung zu überprüfen.
  • Benutzerfreundlichkeit verbessern: Ergänze die Textbox mit Platzhaltern oder Tooltips, um den Nutzern Hinweise zur Eingabe zu geben.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Ereignis nur einmal ausgelöst wird?
Um sicherzustellen, dass das Ereignis nur einmal ausgelöst wird, kannst Du eine boolesche Variable verwenden, die den Status der Auslösung speichert.

2. Was ist der Unterschied zwischen Change und AfterUpdate?
Das Change-Ereignis wird bei jeder Änderung in der Textbox ausgelöst, während AfterUpdate nur dann ausgelöst wird, wenn die Eingabe abgeschlossen ist (z.B. wenn die Textbox verlassen wird).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige