Hallo
Möchte Textboxen dividieren, addieren etc. doch leider beachtet Excel
die Nachkommastelle nicht.
Ein Bsp.
'In meiner Texbox1 steht z.B. 20
D = CDbl(TextBox1) + 5.2
Range(„A1“).Value = D
A1 zeigt mir dann 25 an und nicht die gewünschten 25.2, er rundet also.
Die Formatierung der Zelle stimmt auch.
Hat da jemand eine Idee ?
Danke
Flexo
Hallo
Möchte Textboxen dividieren, addieren etc. doch leider
beachtet Excel
die Nachkommastelle nicht.
Ein Bsp.
'In meiner Texbox1 steht z.B. 20
D = CDbl(TextBox1) + 5.2
Range(„A1“).Value = D
A1 zeigt mir dann 25 an und nicht die gewünschten 25.2, er
rundet also.
Hallo Flexo,
ist es ein Runden oder liegt es an der Falschen Dezimal-Trennung.
Ich kenne mich mit VBA nicht so gut aus aber mir ist aufgefallen das du statt einem Komma einen Punkt verwendest.
Gruß Holger
Hallo
also bei mir funzt der Code
vielleicht hast Du die Variable D falsch dimensioniert, als Integer?
MfG
Ich hab den Versuchsaufbau mal nachgebastelt:
- Textbox aus der Steuerelement-Toolbox auf ein Tabellenblatt
- Ins Ereignis _Change den Code vom Anfrager
Dann passiert folgendes:
- bei CDbl(Textbox1.Value) krieg’ ich einen Type Mismatch
- ein bißchen herumspielen mit Typename ergibt: Textbox1.Value ist ein String
- wird dieser mit Val(TextBox1.Value) konvertiert, ist es ein Double
- und dann funktioniert alles so wie gewünscht.
HTH
M.
Und Sterne…
Hallo Flexom
nachträglich viel fiel mir noch auf:
D = CDbl(TextBox1) + 5.2
Range(„A1“).Value = D
Textbox1 ist m.E. nicht vollständig qualifiziert, es fehlt vorne und hinten 'was. Ich würde Me.TextBox1.Value verwenden.
Auch für die Ausgabezelle würde ich eine voll qualifzierte Objektvariable verwenden.
M.
Die Formatierung der Zelle stimmt auch.
Hallo Flexo,
dann sag doch mal wie die Formatierung genau aussieht.
Und zu Punkt oder Komma, teste mal dieses:
Sub tt()
MsgBox CDbl(„4711.123“)
MsgBox CDbl(„4711,123“)
End Sub
Gruß
Reinhard
Vielen Dank für eure Hilfe
DonSenilo hatte recht, D war als Integer deklariert und ich habe es nicht bemerkt *peinlich*.
Gruss
Flexo