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

Forumthread: TextBox-Wert als Zahl

TextBox-Wert als Zahl
16.10.2004 10:32:19
Thomas
Hallo,
Ich raff das nicht. Ich möchte, dass die Zahl, welche in der UserForm (TextBox) eingegeben wird auch als Zahl im Arbeitsblatt (A1) ausgebeben wird. Zahl kann mit 12.20 oder 12,20 geschrieben werden. Wenn ich dann die UserForm wieder starte, soll der Wert von A1 angezeigt werden (ControlSource). Irgendwie klappt dass mit der Verknüfpung (ControlSource) und der Zahl nicht so.
Siehe auch:
https://www.herber.de/bbs/user/12193.xls
Danke für euere Hilfe!
Gruss Thomas
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox-Wert als Zahl
Ulf
"Zahl kann mit 12.20 oder 12,20 geschrieben werden"
Eben nicht, 12.20 ist für Excel Text.
Ulf
AW: TextBox-Wert als Zahl
16.10.2004 10:50:29
Thomas
Hallo Ulf
Ja, sollte heissen, "Zahl müsste mit 12.20 oder 12,20 geschrieben werden können". Kennst Du eine Möglichkeit, diese mit Umwandeln z.Bsp. Var(TextBox1) [habe ich von K.Rola] umzuwandeln?
Möchte aber, dass beim starten der UserForm der Zellwert erscheint.
Thomas
Anzeige
AW: TextBox-Wert als Zahl
Ulf
Dann musst du auf ControlSouce verzichten und den Wert beim Start einlesen.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If InStr(TextBox1, ".") > 0 Then
Sheets("Tabelle1").[a1] = Val(TextBox1)
Else
Sheets("Tabelle1").[a1] = CDbl(TextBox1)
End If
End Sub


Private Sub UserForm_Initialize()
TextBox1 = Sheets("Tabelle1").[a1]
End Sub

Es sind aber noch weitere Prüfungen nötig, z.B. ob nur Zahlenwerte und , bzw. . enthalten sind, ob . oder , nur einmal vorkommen. Alles in allem ein weites Feld.
Ulf
Anzeige
AW: TextBox-Wert als Zahl
16.10.2004 11:13:53
Thomas
Hallo Ulf
Danke dir für die Hilfe. Funktioniert bereits sehr gut. Die Prüfung der Zahlenwert werde ich in Angriff nehmen.
Thomas
AW: TextBox-Wert als Zahl
16.10.2004 11:35:48
Thomas
Die Umwandlung CDbl(TextBox1) erhalte ich den Laufzeitfehler '13', Typen unverträglich.
Wert in TextBox1 ist Text ("12,2").
Gibts noch eine andere Umwandlungsfunktion?
Thomas
Anzeige
AW: TextBox-Wert als Zahl
Ulf
Einfach nur 12,2 ohne ""
Ulf
AW: TextBox-Wert als Zahl
16.10.2004 13:09:20
Thomas
Hallo Ulf
Tut mir leid, dass ich dich so bedränge.
In die TextBox1 gebe ich den Wert 12.20 ein dann funktioniert alles Prima. Wenn ich den Wert 12,20 eingebe, erhalte ich den Laufzeitfehler.
Dass sollte doch mit der Umwandlungsfunktion CDbl gelöst werden, oder?
Thomas
Anzeige
AW: TextBox-Wert als Zahl
Ulf
Tut mir Leid, das kann ich nicht nachvollziehen. Ist es sicher, dass da in der Textbox
wirklich nur 12,30 und nichts weiter steht? Ggf. mal mit Len(Textbox1) testen.
Ulf
AW: TextBox-Wert als Zahl
16.10.2004 13:18:15
Hajo_Zi
Hallo Thomas,
ma so nur eine Frage am Rande. Sprecht Ihr beide von der gleichen Spprachversion?
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: TextBox-Wert als Zahl
16.10.2004 13:28:38
Thomas
Es steht wirklich nur 12,30 und nicht weiter drin (getestet mit Len = 5).
Habe nochmals eine Test-Datei angehängt.
https://www.herber.de/bbs/user/12202.xls
Ich arbeite mit EX2003, hoffe jedoch, dass das auch abwärtskompatibel ist.
Danke dir
Gruss Thomas
Anzeige
AW: TextBox-Wert als Zahl
16.10.2004 13:50:46
Thomas
Das habe ich befürchtet zu hören, das es bei dir geht und bei mir nicht.
Ich habe keine speziellen Einstellungen in der Systemsteurung:
Datum-,Zeit-,Sprach- und Regionaleinstellungen\Format für Zahlen, Datum und Zeit\ ist auf Deutsch (Schweiz) eingestellt. Sollte eigentlich alles i.O. sein.
Auf der Suche nach der Lösung in der Recherche bin ich auch immer wieder auf deine Lösung gestossen. Das Umwandeln mit CDbl müsste eigentlich funzen. Tut es aber bei mir nicht! Sch...
Naja, danke dir für deine GEDULD
Gruss Thomas
Anzeige
AW: TextBox-Wert als Zahl
Ulf
Ist denn das Dezimaltrennzeichen in der Schweiz das , (Komma)?
Ulf
AW: TextBox-Wert als Zahl
Ulf
Hab gerade mal nachgesehen, das Dezimaltrennzeichen in der Schweiz ist der . Punkt.
Das heißt, bei Eingabe mit . bruchst du eigentlich gar nichts zu tun.
Bei Eingabe mit , müßtest du das Komma durch den Punkt ersetzen.
Ulf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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

TextBox-Wert in Zahl umwandeln und im Excel-Arbeitsblatt verwenden


Schritt-für-Schritt-Anleitung

Um einen Wert aus einer TextBox in einer UserForm als Zahl in ein Excel-Arbeitsblatt zu übertragen, befolge die nachstehenden Schritte:

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Füge eine UserForm hinzu und platziere eine TextBox (z.B. TextBox1) darauf.

  3. Verwende den folgenden VBA-Code, um den Wert der TextBox als Zahl in Zelle A1 des Arbeitsblatts zu speichern:

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If InStr(TextBox1, ".") > 0 Then
           Sheets("Tabelle1").[A1] = Val(TextBox1)
       Else
           Sheets("Tabelle1").[A1] = CDbl(TextBox1)
       End If
    End Sub
    
    Private Sub UserForm_Initialize()
       TextBox1 = Sheets("Tabelle1").[A1]
    End Sub
  4. Teste die UserForm, indem du verschiedene Zahlenformate eingibst (12,20 und 12.20) und überprüfe, ob die Werte korrekt in die Zelle A1 übertragen werden.


Häufige Fehler und Lösungen

  • Laufzeitfehler '13', Typen unverträglich: Dieser Fehler tritt auf, wenn der Wert in der TextBox nicht konvertiert werden kann. Stelle sicher, dass nur numerische Werte ohne zusätzliche Zeichen eingegeben werden.
  • Der Wert wird nicht korrekt angezeigt: Achte darauf, dass die TextBox richtig mit der Zelle verbunden ist und keine unerwünschten Zeichen enthalten sind. Überprüfe die Systemeinstellungen für das Dezimaltrennzeichen.

Alternative Methoden

  1. Direkte Umwandlung in VBA: Anstatt CDbl zu verwenden, kannst du auch die Funktion Val nutzen, um den Wert aus der TextBox zu lesen und als Zahl zu speichern. Dies kann hilfreich sein, wenn du mit verschiedenen Dezimaltrennzeichen arbeitest.

    Sheets("Tabelle1").[A1] = Val(TextBox1)
  2. Verwendung der CStr Funktion: Wenn du sicherstellen möchtest, dass der Wert als String behandelt wird, bevor du ihn umwandelst, kannst du CStr verwenden:

    Sheets("Tabelle1").[A1] = CStr(TextBox1)

Praktische Beispiele

Eine typische Anwendung könnte sein, dass du eine UserForm für die Eingabe von finanziellen Daten verwendest. Hier ein Beispiel:

  • Eingabe: 12.30 oder 12,30
  • Im Arbeitsblatt wird der Wert korrekt als 12.3 in Zelle A1 angezeigt, abhängig vom verwendeten Dezimaltrennzeichen.

Testen kannst du das mit verschiedenen Zahlen und sicherstellen, dass die Umwandlung in VBA funktioniert.


Tipps für Profis

  • Integriere zusätzliche Prüfungen: Stelle sicher, dass der eingegebene Wert nur Zahlen und maximal ein Dezimaltrennzeichen enthält.
  • Nutze den Len-Befehl, um die Länge der Eingabe zu überprüfen. Dies kann helfen, unerwünschte Leerzeichen oder unerwartete Zeichen zu erkennen.

    If Len(TextBox1) > 0 Then
      ' Weitere Prüfungen hier
    End If

FAQ: Häufige Fragen

1. Warum funktioniert CDbl nicht mit meinem Dezimaltrennzeichen? Das kann an den regionalen Einstellungen deines Systems liegen. Überprüfe die Systemeinstellungen für das Dezimaltrennzeichen.

2. Wie kann ich sicherstellen, dass die Umwandlung in eine Zahl funktioniert? Verwende die Funktion Val oder führe eine zusätzliche Validierung der Eingabe durch, bevor du versuchst, sie als Zahl zu speichern.

3. Funktioniert das in allen Excel-Versionen? Der bereitgestellte Code funktioniert in Excel 2003 und neueren Versionen. Achte darauf, dass die VBA-Umgebung in deiner Excel-Version verfügbar 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