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

Forumthread: Textbox-Eingabe in Userform

Textbox-Eingabe in Userform
Sebastian
Hallo liebe Experten,
ich brauche mal wieder eure Hilfe und wäre dankbar für Tips und Feedback zu folgendem Problem:
Ich habe eine Textbox in einer VBA Userform als Eingabemaske für Zahlenwerte. Ich möchte nun, dass diese Textbox es mir ermöglicht, einfache Rechenoperationen durchzuführen (nur +, - , * und /). Beispiel: Wenn ich in die Textbox "=20+15+80" eingebe, soll beim Verlassen der Textbox 115 drin stehen. Wenn ich "=3*4" eingebe soll 12 drin stehen.
Was gibt es hier für Lösungsansätze? Muss ich den Eingabe-String einlesen, in die einzelnen Komponenten auseinander nehmen und dann die Rechnung in VBA machen oder gibt es etwas einfacheres?
Herzlichen Dank im Voraus und beste Grüße!
Sebastian
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Textbox-Eingabe in Userform
11.11.2010 11:09:16
Rudi
Hallo,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Evaluate(Replace(TextBox1.Text, ",", "."))
End Sub

Gruß
Rudi
AW: Textbox-Eingabe in Userform
11.11.2010 11:39:34
Sebastian
Hey wow!
Genauso geht's. Perfekte Lösung für mein Problem!
Vielen Dank!
AW: Textbox-Eingabe in Userform
11.11.2010 11:11:37
Hajo_Zi
Hallo Sebastian,
Option Explicit
Private Sub TextBox1_AfterUpdate()
If TextBox1  "" Then
TextBox1 = Application.Evaluate("=" & TextBox1)
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox-Eingabe in einer VBA Userform


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (Alt + F11).
  2. Erstelle eine Userform:
    • Klicke auf „Einfügen“ und wähle „UserForm“.
  3. Füge eine TextBox hinzu:
    • Ziehe eine TextBox auf die Userform.
  4. Füge den folgenden VBA-Code ein:
    Private Sub TextBox1_AfterUpdate()
       If TextBox1 <> "" Then
           TextBox1 = Application.Evaluate("=" & TextBox1)
       End If
    End Sub
    • Dieser Code sorgt dafür, dass beim Verlassen der TextBox die eingegebene Rechnung automatisch ausgewertet wird.
  5. Teste die Userform:
    • Starte die Userform, gib eine Rechnung wie =20+15+80 ein und verlasse die TextBox.

Häufige Fehler und Lösungen

  • Fehlermeldung beim Ausführen der Berechnung:

    • Stelle sicher, dass du die Eingabe mit einem Gleichheitszeichen (=) beginnst.
  • Die TextBox zeigt nicht das erwartete Ergebnis an:

    • Überprüfe, ob im Code das richtige TextBox-Steuerelement angesprochen wird. Vergewissere dich, dass der Name der TextBox korrekt ist.

Alternative Methoden

  • Verwendung von Evaluate:

    • Du kannst auch den folgenden Code nutzen, um die Eingabe zu evaluieren:
      Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
      TextBox1 = Evaluate(Replace(TextBox1.Text, ",", "."))
      End Sub
  • InputBox als Alternative:

    • Wenn du statt einer Userform lieber eine InputBox verwenden möchtest, kannst du dies ebenso tun:
      Dim userInput As String
      userInput = InputBox("Gib deine Rechnung ein:")
      MsgBox Evaluate("=" & userInput)

Praktische Beispiele

  1. Einfaches Addieren:

    • Eingabe: =5+10
    • Ergebnis: 15
  2. Multiplikation:

    • Eingabe: =3*4
    • Ergebnis: 12
  3. Kombinierte Berechnung:

    • Eingabe: =20-5+10*2
    • Ergebnis: 35

Die Nutzung einer excel userform textbox für Berechnungen kann sehr wirkungsvoll sein, um die Benutzereingabe zu steuern.


Tipps für Profis

  • Validierung der Eingabe:

    • Implementiere eine Eingabewarteschleife, um sicherzustellen, dass nur gültige mathematische Ausdrücke eingegeben werden.
  • Erweiterung der Funktionalität:

    • Überlege, komplexere Funktionen wie Wurzel oder Potenzen einzuführen, indem du die Eingabe vorher analysierst.
  • Ästhetik verbessern:

    • Gestalte die Userform ansprechend, um die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Du kannst den Text in der TextBox während der Eingabe validieren, indem du das KeyPress-Ereignis der TextBox verwendest.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die vorgestellten Methoden sind in allen gängigen Excel-Versionen nutzbar, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige