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

Forumthread: Textfeld in Zahl umwandeln

Textfeld in Zahl umwandeln
22.04.2005 17:26:26
Simon
Hallo liebe Community,
ich weiß, die Überschrift hört sich eher nach "Such doch mal!" an aber ich habe nichts gefunden :-(
Der Code soll den Inhalt einer Textbox als Zahl in mein Tabellenblatt übernehmen:

Private Sub cbo_Wert_Click()
If IsNumeric(TextBox2.Value) Then
ActiveSheet.Range("H29").Select
ActiveCell.Value = Val(TextBox2.Text) * 1
Unload Me
Else
MsgBox ("Bitte numerischen Wert eingeben! / Please enter numeric value!")
End If
End Sub

Löppt auch alles soweit und die Zahl im Textfeld wird auch zur Zahl. Nur sie wird immer als "Ganze" Zahl eingefügt. Bei Eingabe von 37,50 wirds eine 37 und bei 39,99 eine 39.
Habt ihr eine Idee woran es liegt?
Natürlich ist die Zellformatierung auf Zahl mit 2 Nachkommastellen eingestellt ;-)
Danke für die Hilfe im voraus und viele Grüße
Simon
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Textfeld in Zahl umwandeln
22.04.2005 17:45:45
Herbert

Private Sub cbo_Wert_Click()
If IsNumeric(TextBox2.Value) Then
[h29] = CDbl(TextBox2)
Unload Me
Else
MsgBox ("Bitte numerischen Wert eingeben! / Please enter numeric value!")
End If
End Sub

mfg Herbert
AW: Textfeld in Zahl umwandeln
25.04.2005 13:47:20
Simon
Hallo Herbert,
vielen Dank für die schnelle Hilfe!
Das funktioniert super.
Darf ich aber noch fragen warum?
Wieso nimm er bei [h29] = CDbl(TextBox2) die Dezimalzahl
und bei Val(TextBox2.Text) * 1 nur die Ganzzahl?
Vielen Dank auf jeden Fall nochmals!
Gruß
Simon
Anzeige
;

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

Textfeld in Zahl umwandeln: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um den Inhalt eines Textfeldes in Excel als Zahl in eine Zelle zu übertragen, kannst du den folgenden VBA-Code verwenden. Dieser Code berücksichtigt, dass der Wert als Dezimalzahl ausgegeben wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein UserForm hinzu und platziere ein Textfeld (TextBox2) sowie einen Button (cbo_Wert).
  3. Klicke mit der rechten Maustaste auf den Button und wähle "Code anzeigen".
  4. Kopiere den folgenden Code in das Codefenster:

    Private Sub cbo_Wert_Click()
       If IsNumeric(TextBox2.Value) Then
           ActiveSheet.Range("H29").Value = CDbl(TextBox2.Value)
           Unload Me
       Else
           MsgBox ("Bitte numerischen Wert eingeben! / Please enter numeric value!")
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.
  6. Teste die Funktion, indem du einen numerischen Wert in das Textfeld eingibst und auf den Button klickst.

Häufige Fehler und Lösungen

Ein häufiger Fehler, den viele Nutzer erleben, ist, dass die eingegebene Zahl immer als ganze Zahl in die Zelle übernommen wird. Hier sind die häufigsten Ursachen und deren Lösungen:

  • Problem: Verwendung von Val(TextBox2.Text) * 1 führt dazu, dass nur die Ganzzahl übernommen wird.

    • Lösung: Verwende CDbl(TextBox2.Value), um die Dezimalzahl korrekt zu speichern.
  • Problem: Die Zelle ist nicht richtig formatiert.

    • Lösung: Stelle sicher, dass die Zellformatierung auf "Zahl" mit 2 Nachkommastellen eingestellt ist.

Alternative Methoden

Es gibt auch alternative Ansätze, um Textfelder in Zahlen umzuwandeln:

  1. Direkte Zuweisung: Du kannst die Eingabewerte auch ohne VBA in Excel direkt umwandeln, indem du eine Formel in einer Zelle verwendest:

    =WERT(A1)  ' A1 ist die Zelle mit dem Text
  2. Nutzung von Formeln: Eine weitere Möglichkeit ist die Verwendung der Excel-Funktion TEXT oder WERT in Kombination mit anderen Funktionen zur Datenvalidierung.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Anwendung:

  • Beispiel 1: Du hast einen Preis in einem Textfeld (z.B. 19,99) und möchtest diesen in Zelle H29 speichern. Verwende den oben genannten Code, um die Zahl mit Dezimalstellen zu speichern.

  • Beispiel 2: Wenn du eine Liste von Preisen hast, kannst du eine Schleife im VBA verwenden, um jeden Preis in eine Zelle zu übertragen.

    Dim i As Integer
    For i = 1 To 10
       ActiveSheet.Cells(i, 1).Value = CDbl(TextBox2.Value) ' Überträgt in die erste Spalte
    Next i

Tipps für Profis

  • Validierung: Verwende Application.WorksheetFunction.IsNumber() im VBA-Code für eine zusätzliche Validierung, um sicherzustellen, dass der Wert tatsächlich eine Zahl ist.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Eingaben korrekt zu verarbeiten und dem Nutzer hilfreiche Hinweise zu geben.

  • Erweiterung: Du kannst die Funktionalität erweitern, indem du weitere Textfelder für unterschiedliche Eingaben hinzufügst und diese in verschiedene Zellen überträgst.


FAQ: Häufige Fragen

*1. Warum funktioniert `Val(TextBox2.Text) 1nicht für Dezimalzahlen?** Val` konvertiert nur bis zum ersten nicht-numerischen Zeichen. Daher wird alles nach dem Komma ignoriert.

2. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Verwende die Funktion IsNumeric, um sicherzustellen, dass nur numerische Eingaben akzeptiert 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