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...
|