Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Format für Textbox vorgeben

Format für Textbox vorgeben
Dietmar
Hallo in die Runde,
gibt es eine Möglichkeit das Format bei Textboxeingaben, deren Eintrag in Zellen übertragen werden soll, zu erzwingen?
Also etwa so wie es bei der Direkteingabe in einer Zelle über die Gültigkeitsregel geschieht.
Habe folgende Code, bei dem alles zugelassen wird:
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Unprotect
UserForm1.Show
End Sub
Private Sub CommandButton1_Click()
Range("A3") = TextBox1.Text
Range("B3") = TextBox2.Text
Range("C3") = TextBox3.Text
Unload Me
Sheets("Tabelle1").Protect
End Sub
Textbox 1 soll alle Eingaben erlauben
Textbox 2 soll nur positive Dezimalzahlen erlauben
Textbox 3 soll ganze Zahlen erlauben.
Wenn die Konventionen nicht eingehalten werden, soll das Befüllen der Textbox nicht möglich sein oder der Vorgang soll mit entsprechendem Hinweis abgebrochen werden und die bereits befüllten Zellen sollen wieder geleert werden.
Hat jemand eine Idee?
Bin für jede Hilfe dankbar.
Viele Grüße
Dietmar aus Aachen
Gültigkeitsvorgaben in den zu befüllenden Zellen werden nicht beachtet.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Format für Textbox vorgeben
21.09.2010 08:38:16
fcs
Hallo Dietmar,
beim Eintragen von Textbox-Inhalten aus einem Userform in Zellen einer Tabelle muss beachtet werden, dass der Inhalt Text ist. Zahlwerteingaben müssen vor dem Eintragen in eine Zelle in eine Zahl umgewandelt werden.
mit den nachfolgenden Anpassungen am Userform-Code wird die Eingabe in die Textboxen gesteuert (zulässige Tasten) und eine entsprechende Prüfung/Konversion der Textbox-Inhalte vor dem Eintragen in die Tabelle durchgeführt.
Gruß
Franz
Private Sub CommandButton1_Click()
If TextBox1.Text  "" Then
Range("A3") = TextBox2.Text
Else
Range("A3").ClearContents
End If
If IsNumeric(TextBox2.Text) Then
Range("B3") = CDbl(TextBox2.Text)
Else
Range("B3") = 0 'oder Range("B3").ClearContents
End If
If IsNumeric(TextBox3.Text) Then
Range("C3") = CDbl(TextBox3.Text)
Else
Range("C3") = 0 'oder Range("B3").ClearContents
End If
Unload Me
Sheets("Tabelle1").Protect
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(","), 8 '8 = Backspace - Löschen nach links
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc(0) To Asc(9), 8 '8 = Backspace - Löschen nach links
Case Else
KeyAscii = 0
End Select
End Sub

Anzeige
Danke! Das ist es!
21.09.2010 23:13:37
Dietmar
Hallo Franz,
einfach klasse!
Herzlichen Dank, genau das brauchte ich.
Da wäre ich aber auch nicht im entferntesten drauf gekommen.
Viele Grüß
Dietmar
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel Eingaben in Textboxen Vorgeben und Formatieren


Schritt-für-Schritt-Anleitung

Um das Textbox Format in Excel festzulegen und den Benutzern Eingaben vorzugeben, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein UserForm:

    • Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „UserForm“.
  3. Füge Textboxen hinzu:

    • Ziehe drei Textboxen (TextBox1, TextBox2, TextBox3) auf das UserForm.
  4. Füge einen CommandButton hinzu:

    • Ziehe einen CommandButton (CommandButton1) auf das UserForm, um die Eingaben zu speichern.
  5. Füge den folgenden Code ein:

    • Klicke doppelt auf den CommandButton und füge den Code ein:
    Private Sub CommandButton1_Click()
       If TextBox1.Text <> "" Then
           Range("A3") = TextBox1.Text
       Else
           Range("A3").ClearContents
       End If
    
       If IsNumeric(TextBox2.Text) Then
           Range("B3") = CDbl(TextBox2.Text)
       Else
           Range("B3").ClearContents
           MsgBox "Bitte geben Sie eine positive Dezimalzahl ein."
       End If
    
       If IsNumeric(TextBox3.Text) Then
           Range("C3") = CInt(TextBox3.Text)
       Else
           Range("C3").ClearContents
           MsgBox "Bitte geben Sie eine ganze Zahl ein."
       End If
    
       Unload Me
    End Sub
  6. Füge KeyPress-Events hinzu:

    • Um die Eingaben zu steuern, füge diesen Code in den Textboxen TextBox2 und TextBox3 hinzu:
    Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       Select Case KeyAscii
           Case Asc(0) To Asc(9), Asc(","), 8
           Case Else
               KeyAscii = 0
       End Select
    End Sub
    
    Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       Select Case KeyAscii
           Case Asc(0) To Asc(9), 8
           Case Else
               KeyAscii = 0
       End Select
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Text wird nicht in Zellen eingetragen:

    • Lösung: Stelle sicher, dass der Text in TextBox1 nicht leer ist, bevor du ihn in die Zelle überträgst.
  • Fehler: Eingaben in TextBox2 oder TextBox3 werden nicht akzeptiert:

    • Lösung: Überprüfe, ob die KeyPress-Events richtig implementiert sind, um unerlaubte Zeichen zu verhindern.
  • Fehler: Zellen bleiben nach ungültigen Eingaben befüllt:

    • Lösung: Füge eine Bedingung ein, die die Zellen leert, wenn die Eingaben nicht den Vorgaben entsprechen.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Ansätze:

  1. Datenüberprüfung:

    • Du kannst die Datenüberprüfung in Excel verwenden, um Eingaben in Zellen zu steuern. Gehe zu „Daten“ > „Datenüberprüfung“ und definiere die zulässigen Eingaben.
  2. Formeln:

    • Verwende Formeln in benachbarten Zellen, um die Eingaben zu validieren, und gebe entsprechende Fehlermeldungen aus.

Praktische Beispiele

  1. Positive Dezimalzahlen in TextBox2:

    • Verwende den Code in TextBox2_KeyPress, um nur positive Dezimalzahlen zuzulassen.
  2. Ganze Zahlen in TextBox3:

    • Der Code in TextBox3_KeyPress sorgt dafür, dass nur ganze Zahlen eingegeben werden.
  3. Mit Gültigkeitsregeln kombinieren:

    • Du kannst das Excel Eingabeformat in Kombination mit VBA nutzen, um ein umfassendes Eingabemanagement zu erstellen.

Tipps für Profis

  • Verwende benutzerdefinierte Fehlerbehandlungen:

    • Erstelle eigene Fehlermeldungen, um die Benutzerfreundlichkeit zu verbessern.
  • Optimiere den VBA-Code:

    • Strukturiere den Code so, dass er leicht wartbar ist und Kommentare enthält, um die Verständlichkeit zu erhöhen.
  • Nutze Module für wiederverwendbare Funktionen:

    • Lagere wiederkehrende Codeabschnitte in Module aus, um die Übersichtlichkeit zu bewahren.

FAQ: Häufige Fragen

1. Wie kann ich das Format der Textboxen ändern? Du kannst das Format der Textboxen im Eigenschaftenfenster des UserForms anpassen (z. B. Schriftart, Hintergrundfarbe).

2. Was passiert, wenn ein Benutzer ungültige Daten eingibt? Das VBA-Skript leert die entsprechenden Zellen und gibt eine Fehlermeldung aus, die den Benutzer auf die falschen Eingaben hinweist.

3. Ist dieses Tutorial für alle Excel-Versionen geeignet? Das Tutorial ist für Excel-Versionen ab 2007 geeignet, da VBA und UserForms in diesen Versionen unterstützt werden.

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