Anzeige
Archiv - Navigation
1904to1908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform Textbox Zahlen

Userform Textbox Zahlen
04.11.2022 09:43:04
Jörg
Hallo,
die Übergabe als Zahl will mir nicht gelingen. Würde mich sehr über Hilfe freuen.
Mfg Jörg

Private Sub TextBox5_AfterUpdate()
If IsNumeric(TextBox5.Text) Then TextBox5.Text = CDbl(TextBox5.Text)
End Sub
-----------------------------------------------------------------------------------------------------------------------

Private Sub TextBox12_Change()
If IsNumeric(TextBox12.Text) Then TextBox12.Text = CDbl(TextBox12.Text)
End Sub
----------------------------------------------------------------------------------------------------------------------------

Private Sub TextBox18_AfterUpdate()
If IsNumeric(TextBox18.Text) Then TextBox18.Text = CDbl(TextBox18.Text)
End Sub
-----------------------------------------------------------------------------------------------------------------------------

Private Sub TextBox19_AfterUpdate()
If IsNumeric(TextBox19.Text) Then TextBox19.Text = CDbl(TextBox19.Text)
End Sub
----------------------------------------------------------------------------------------------------------------------------------

Private Sub EINTRAG_SPEICHERN()
Dim lZeile As Long
Dim i As Integer
Dim letzteZeile As Long
Dim Text1 As String, Text2 As String
Dim Textbox As Object
' Es sind alle Texfelder auszufüllen
Text1 = "Alle Felder ausfüllen !"
Text2 = "TK-25"
For i = 1 To iCONST_ANZAHL_EINGABEFELDER
If Me.Controls("TextBox" & i) = "" Then
MsgBox Text1, vbCritical + vbOKOnly, "Eingaben unvollständig"
Exit Sub
End If
Next i
With Controls("TextBox12")
If IsNumeric(.Text) = False Then
MsgBox "Bitte numerischen Wert in Feld " & Text2 & " eintragen!" & Chr(13) & "Falls nicht vorhanden, ""0"" eingeben !", vbCritical
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
Exit Sub
End If
End With
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
'ein Eintrag?:
If TextBox19.Text  "" Then
'kann Eintrag in eine Zahl umgewandelt werden:
If IsNumeric(TextBox19.Text) Then
'größer Null?:
If CDbl(TextBox19.Text) = 0 Then
MsgBox "Die Gesamtzahl muß größer als Null sein", vbCritical
End If
End If
End If
For i = 1 To iCONST_ANZAHL_EINGABEFELDER
Select Case (i)
Case 1 To 4:    Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 6 To 10:   Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 13 To 16:  Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 18 To 19:  Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 12:        Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 5:         Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 20:        Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 21:        Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 11:        Tabelle1.Cells(lZeile, i) = CDate(Me.Controls("TextBox" & i))
Case 17:        Tabelle1.Cells(lZeile, i) = CDate(Me.Controls("TextBox" & i))
End Select
Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Next i
'Der Benutzer könnte die angezeigten Werte in der Liste geändert haben,
'daher aktualisieren wir den ausgewählten Eintrag entsprechend.
ListBox1.List(ListBox1.ListIndex, 1) = TextBox11
ListBox1.List(ListBox1.ListIndex, 2) = TextBox21
ListBox1.List(ListBox1.ListIndex, 3) = TextBox4
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Userform Textbox Zahlen
04.11.2022 09:51:58
GerdL
Hallo Jörg!
In den Textboxen ist immer Text. Wo klemmt es genau?
? Tabelle1.Cells(lZeile, i) = CVar(Me.Controls("TextBox" & i))
Gruß Gerd
AW: Userform Textbox Zahlen
04.11.2022 09:58:12
Oberschlumpf
Hi Jörg
eine Textbox ist eine Textbox und alle in ihr gezeigten Daten, egal ob Buchstabe oder Zahl, ist ein TEXTwert.
angenommen, es gibt 2 Textboxen und eine Integer-Variable, die den Summenwert beider Textboxen aufnehmen soll:
funktioniert....nicht

Dim iSumme As Integer
iSumme = TextBox1.Text + TextBox2.Text
funktioniert...

Dim iSumme As Integer
iSumme = CInt(TextBox1.Text) + CInt(TextBox2.Text)
Was du versuchst...

TextBox5.Text = CDbl(TextBox5.Text)
...geht nicht, weil du den TextBox-Datentyp (Text) nicht in einen Double-Datentyp umwandeln kannst - weil - Inhalt von Textboxen = immer Text!
Du müsstest also Zwischenschritte über entsprechende Variablen, z Bsp...

Dim dblSumme As Double
dblSumme = CDbl(TextBox5.Text) + CDbl(andereTextbox.Text)
...nutzen, damit du die Inhalte von Textboxen nach deinen Wünschen verarbeiten kannst
Ich lass deinen Beitrag weiter offen, da ich mir deinen vielen Code nicht einzeln angeschaut habe und somit vielleicht eine oder mehrere deiner Fragen gar nicht berücksichtigt habe - ich bevorzuge Bsp-Dateien mit Code + Bsp-Daten.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Userform Textbox Zahlen
04.11.2022 15:32:50
Yal
Hallo Jörg,
deine Frage ist nicht ganz eindeutig. Wenn ich es richtig verstehe, geht es um die erste 4 _Change- bzw. _AfterUpdate-Ereignis.
Höchstens so:

Private Sub TextBox5_AfterUpdate()
If IsNumeric(TextBox5.Text) Then TextBox5.Text = Format(CDbl(TextBox5.Text), "#,##0.00;-#,##0.00;0")
End Sub
Aber damit wird nur das Erscheinungsbild des Textes beeinflusst. Es wird nichts daran ändern, dass ein Text ein Text ist.
Andere Punkt: hättest Du eine sauberes Einrücken deines Codings, hättest Du vielleicht diese unglückliche Nutzlosigkeit entdeckt:

    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
Select Case (i)
Case 1 To 4:    Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 5:         Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 6 To 10:   Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 11:        Tabelle1.Cells(lZeile, i) = CDate(Me.Controls("TextBox" & i))
Case 12:        Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 13 To 16:  Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 17:        Tabelle1.Cells(lZeile, i) = CDate(Me.Controls("TextBox" & i))
Case 18 To 19:  Tabelle1.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Case 20:        Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Case 21:        Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
End Select
Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Next i
Zuerst aufwendig detailliert machen und anschliessend pauschal drüberbügeln... Wenn es so gewollt ist, kann man sich das differzentiertes Händeln sparen. Ansonsten sollte die Zeile nach dem "End Select" mit einem "Case Else" ins "Select/End Select" rücken.
Oder war das der eigentliche Fokus deiner Frage?
VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige