AW: Zahlenformat in Textbox (UF)
10.10.2006 18:30:05
proxima05
Servus Franz,
ich habe Deinen Vorschlag aufgenommen (ihn leicht modifiziert, weil ich es mit einer Range zu tun habe und nicht nur mit einer einzelnen Zelle). Der Code für den OK-button sieht wie folgt aus:
==================================================
Private Sub OK_Click()
If Not ACT_365 And Not Act_360 Then
MsgBox "Please select the Day/Year Convention!", 64, "Warning"
Exit Sub
End If
Dim frm As UserForm
Set frm = UserForm1
Sheets("Cash Flow").Activate
Range("AA16").End(xlUp).Offset(1, 0).Select
With frm
ActiveCell.Value = .WKN.Value
ActiveCell.Offset(0, 1).Value = .Type_of_Bond.Value
'ActiveCell.Offset(0, 2).Value = .No.Value hier muss noch ein Dialogfeld für die Cobold/Target-Nr.
ActiveCell.Offset(0, 3).Value = .Issuer.Value
ActiveCell.Offset(0, 4).Value = .Issuance.Value
ActiveCell.Offset(0, 5).Value = .Settlement.Value
ActiveCell.Offset(0, 6).Value = .Interest_Run.Value
ActiveCell.Offset(0, 7).Value = .Clean_Price.Value
ActiveCell.Offset(0, 9).Value = .Curr_Pair.Value
ActiveCell.Offset(0, 10).Value = .FX.Value
ActiveCell.Offset(0, 12).Value = .Maturity.Value
ActiveCell.Offset(0, 13).Value = .Coupon.Value
ActiveCell.Offset(0, 14).Value = .Coupon_Year.Value
ActiveCell.Offset(0, 15).Value = .Face_Value.Value
ActiveCell.Offset(0, 16).Value = IIf(ACT_365, "Ja", "Nein")
ActiveCell.Offset(0, 17).Value = IIf(Act_360, "Ja", "Nein")
ActiveCell.Offset(0, 18).Value = IIf(Long_1st, "Ja", "Nein")
ActiveCell.Offset(0, 19).Value = IIf(Y1_1, "Ja", "Nein")
ActiveCell.Offset(0, 20).Value = IIf(BrokenPeriod, "Ja", "Nein")
Range(Cells(2, 37), Cells(15, 37)).Value = CDbl(Me.FX.Value)
Range(Cells(2, 37), Cells(15, 37)).NumberFormat = "#,##0.0000"
.WKN.Value = ""
.Type_of_Bond.Value = ""
'.No.Value = ""
.Issuer.Value = ""
.Issuance.Value = ""
.Settlement.Value = ""
.Interest_Run.Value = ""
.Clean_Price.Value = ""
.Curr_Pair.Value = ""
.FX.Value = ""
.Maturity.Value = ""
.Coupon.Value = ""
.Coupon_Year.Value = ""
.Face_Value.Value = ""
.ACT_365.Value = False
.Act_360.Value = False
.Long_1st = False
.Y1_1 = False
.BrokenPeriod = False
End With
'With Worksheets("Cash Flow")
'End With
'Unload Me
End Sub
Private Sub FX_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo Fehler
Zahl = CDbl(FX.Value)
FX.Value = Format(Zahl, "#,##0.0000")
Exit Sub
Fehler:
MsgBox "Eingabe für FX ist keine Zahl"
End Sub
==================================================
Die Passagen, die ich leicht modifiziert habe sind:
Range(Cells(2, 37), Cells(15, 37)).Value = CDbl(Me.FX.Value)
Range(Cells(2, 37), Cells(15, 37)).NumberFormat = "#,##0.0000"
Wenn ich jetzt einen Wert (bspw. 1,25) in der Textbox eingebe, dann passiert folgendes:
- die 1,25 werden nicht auf vier Dezimalstellen ergänzt (das war vorher anders)
- In der Range AK2:AK15 wird jede einzelne Zelle mit dem Wert 1,25 beschrieben (Format scheint zu funktionieren, aber dieser soll nur die Zelle beschrieben werden (siehe oben den Offset unter der Range AA16) ... wie kann ich das ändern?
Besten Dank für Deine Hilfe. Sorry, wenn ich da viel Code poste, aber ich denke mir, es macht Sinn, wenn man die Abfolge beim OK-Klick mal als Ganzes sieht.
Gruß
Ralph