Thema Datum  Von Nutzer Rating
Antwort
08.11.2011 23:36:58 Gast58999
NotSolved
09.11.2011 00:32:34 Till
NotSolved
09.11.2011 14:33:31 Radiokopf
NotSolved
09.11.2011 14:34:43 Radiokopf
NotSolved
Rot Dezimalzahlen in Textbox einlesen
09.11.2011 14:55:35 Till
NotSolved
09.11.2011 15:01:20 Till
NotSolved
09.11.2011 15:41:04 Gast92091
NotSolved

Ansicht des Beitrags:
Von:
Till
Datum:
09.11.2011 14:55:35
Views:
2052
Rating: Antwort:
  Ja
Thema:
Dezimalzahlen in Textbox einlesen
Option Explicit
Dim spinning As Boolean, Min#, Max#, Schrittweite#
'#=double

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1 = Format(TextBox1, "0.000")
End Sub

Private Sub UserForm_Initialize()
    Schrittweite = 1000
    Min = 0
    Max = 10
    With SpinButton1
        .Min = Min * Schrittweite 'minimum
        .Max = Max * Schrittweite 'maximum...
    End With
End Sub

' Volume
    Private Sub TextBox1_Change()
    Dim Val 'variant
        
        Val = TextBox1.Value
        If Not IsNumeric(Val) Or Val < Min Or Val > Max Then
           If Not Val = "" Then TextBox1 = 0
           Exit Sub
        End If
        
        Range("C10") = CDbl(Val)
        If Not spinning Then
            SpinButton1 = Val * Schrittweite
        End If
        
    End Sub

'Volume
    Private Sub SpinButton1_Change()
        Dim Val# 'double
        Val = SpinButton1.Value / Schrittweite 'schrittweite tausendstel
        spinning = True
        TextBox1 = Format(Val, "0.000")
        spinning = False
        Range("C10") = Val
    End Sub

Private Sub CommandButton1_Click()
    TextBox1.Value = Format(Range("B3").Value, "0.000") 'Volume
    TextBox2.Value = Range("B13").Value 'Volumeflow
    TextBox3.Value = Range("B5").Value  'Initial concentraition
    TextBox4.Value = Range("B15").Value  'Delta t
    TextBox5.Value = Range("B11").Value  'Raktion Konstant
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57 'Zahlen - zugelassen
        Case 44, 46 'Komma und Punkt
            KeyAscii = 44 'automatisch in Komma umwandeln
            If InStr(1, TextBox2.Text, ",") Then KeyAscii = 0 'wenn schon ein Komma drin ist!
        Case Else: KeyAscii = 0 'alle anderen nicht erlaubt
    End Select
End Sub

Wollte aber eigentlich auch nur ein Beispiel liefern. Den Rest müsstest du dir eigentlich daraus erschließen können. Beim Format musst du eigentlich nur beachten, dass "," in VBA das Tausender-Trennzeichen ist, "." das Dezimal-Trennzeichen und in Excel ist das Ganze umgekehrt. "0" steht für eine feste Anzahl an Ziffern und # für eine variable Anzahl an Ziffern.

Auf die Zellbezüge habe ich nicht geachtet, die musst du anpassen und für die anderen Text-Boxen soll wahrscheinlich das Gleiche gelten... hab mich auf TextBox1/SpinButton1 beschränkt...


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.11.2011 23:36:58 Gast58999
NotSolved
09.11.2011 00:32:34 Till
NotSolved
09.11.2011 14:33:31 Radiokopf
NotSolved
09.11.2011 14:34:43 Radiokopf
NotSolved
Rot Dezimalzahlen in Textbox einlesen
09.11.2011 14:55:35 Till
NotSolved
09.11.2011 15:01:20 Till
NotSolved
09.11.2011 15:41:04 Gast92091
NotSolved