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

Forumthread: Eingabe erzwingen in einer Textbox

Eingabe erzwingen in einer Textbox
28.08.2006 10:41:20
selma
Hallo Excel-Experten,
ich möchte, dass in einer Textbox ein Wert eingegeben werden muss.
Die Textbox darf erst verlassen werden, wenn ein Wert drin steht.
Bisher habe ich folgenden Code.

Private Sub textbox149_AfterUpdate()
On Error Resume Next
If Not IsNumeric(CDbl(TextBox149)) Then
If TextBox149 = "" Then Exit Sub
Cancel = True
Exit Sub
End If
On Error GoTo 0
'Komma und Tausenderpunkte setzen. Prüfen obe Feld leer
Select Case CDbl(Me.TextBox149.Value)
Case Is <= 0.01
Me.TextBox149.Text = Format(CDbl(Me.TextBox149) * 100, "##,##0.00") & " %"
Case Is <= 0.1
Me.TextBox149.Text = Format(CDbl(Me.TextBox149) * 10, "##,##0.00") & " %"
Case Is <= 1
Me.TextBox149.Text = Format(CDbl(Me.TextBox149) * 1, "##,##0.00") & " %"
Case Is <= 100
Me.TextBox149.Text = Format(CDbl(Me.TextBox149), "##,##0.00") & " %"
Case Is > 100
MsgBox "Unzulässiger Prozentwert"
Me.TextBox149.Text = Format(CDbl(1), "##,##0.00") & " %"
End Select
End Sub

Was muss ich ändern, dass die "Zwangseingabe" funktioniert.
Im Voraus bereits danke
viele Grüsse
selma
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Eingabe erzwingen in einer Textbox
28.08.2006 11:57:17
ChrisL
Hallo Selma

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Cancel = True
End Sub

Gruss
Chris
AW: Eingabe erzwingen in einer Textbox
28.08.2006 12:08:17
selma
Hallo Chris,
Danke für Deine Antwort.
Wenn "Blank" eingegeben wird bleibt der Cursor in der Textbox.
Bei Eingabe von 0 springt der Cursor in die nexte Textbox. Dies sollte nicht sein.
Auch bei 0 soll eine andere Eingabe erzwungen werden.
Viele Grüsse
selma
Anzeige
AW: Eingabe erzwingen in einer Textbox
28.08.2006 12:09:28
ChrisL
Hallo

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Or TextBox1 = "0" Then Cancel = True
End Sub

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Eingabe in einer Excel-Textbox erzwingen


Schritt-für-Schritt-Anleitung

Um in einer Excel-Textbox sicherzustellen, dass eine Eingabe erforderlich ist, kannst Du den folgenden VBA-Code verwenden. Dieser verhindert, dass der Benutzer die Textbox verlässt, solange kein gültiger Wert eingegeben wurde.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Finde die UserForm, die Deine Textbox enthält.
  3. Doppelklicke auf die Textbox, um das Codefenster zu öffnen.
  4. Füge den folgenden Code ein:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1 = "" Or TextBox1 = "0" Then 
        MsgBox "Bitte geben Sie einen gültigen Wert ein."
        Cancel = True
    End If
End Sub
  1. Schließe den VBA-Editor und teste die UserForm.

Mit diesem Code wird eine Eingabe in der Textbox erzwungen und eine Nachricht angezeigt, wenn der Benutzer versucht, die Textbox leer oder mit "0" zu verlassen.


Häufige Fehler und Lösungen

Problem: Der Cursor bleibt in der Textbox, obwohl "Blank" eingegeben wurde.
Lösung: Stelle sicher, dass Du den richtigen Code verwendest. Der Code sollte sowohl auf leere Eingaben als auch auf "0" reagieren.

Problem: Bei Eingabe von "0" springt der Cursor zur nächsten Textbox.
Lösung: Verwende die folgende Bedingung im Code:

If TextBox1 = "" Or TextBox1 = "0" Then Cancel = True

Damit bleibt der Cursor in der Textbox, wenn "0" eingegeben wird.


Alternative Methoden

Eine alternative Methode, um die Eingabe in einer Textbox zu erzwingen, ist die Verwendung von Datenvalidierung in einer Zelle statt in einer UserForm. Hierfür kannst Du:

  1. Wähle die Zelle aus, die die Eingabe erhalten soll.
  2. Gehe zu Daten > Datentools > Datenüberprüfung.
  3. Wähle unter "Zulassen" die Option "Benutzerdefiniert" und gib eine Formel ein, die sicherstellt, dass die Zelle nicht leer ist.

Beispiel:

=ISTEXT(A1)  (für Text)

Praktische Beispiele

Hier sind einige Beispiele zur Anpassung der Textbox-Eingabe:

  • Um nur positive Werte zuzulassen, kannst Du den Code wie folgt anpassen:
If TextBox1 <= 0 Then
    MsgBox "Bitte geben Sie einen positiven Wert ein."
    Cancel = True
End If
  • Wenn Du eine spezifische Eingabe wie Prozentsätze erzwingen möchtest:
If Not IsNumeric(TextBox1) Or TextBox1 < 0 Or TextBox1 > 100 Then
    MsgBox "Bitte geben Sie einen Wert zwischen 0 und 100 ein."
    Cancel = True
End If

Tipps für Profis

  • Verwende MsgBox für klare Benutzerführung: Dies hilft, Missverständnisse zu vermeiden und gibt dem Benutzer klare Anweisungen.
  • Teste den Code gründlich: Überprüfe verschiedene Eingabewerte, um sicherzustellen, dass alle möglichen Fehlerquellen abgedeckt sind.
  • Dokumentiere Deinen Code: Füge Kommentare hinzu, um den Zweck jeder Codezeile zu erklären. Dies ist besonders wichtig, wenn Du den Code später anpassen musst.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Verwende die folgende Bedingung im Exit-Code:

If Not IsNumeric(TextBox1) Then
    MsgBox "Bitte geben Sie eine Zahl ein."
    Cancel = True
End If

2. Was tun, wenn die Textbox nicht reagiert?
Überprüfe, ob die UserForm im richtigen Modus ist und dass der Code im richtigen Ereignis platziert ist. Stelle sicher, dass der TextBox-Name korrekt ist.

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