Ich habe mal wieder ein kleines Problemchen, was für euch sicher leicht und schnell zu lösen ist. Folgende Beschreibung:
Ich verwende als Eingabemaske zur Erfassung von Daten ein VBA-Formular mit mehreren Textboxen. An einigen Stellen sollen Zahlen eingegeben werden, die auch schon mal bis zu 9-stellig sein können. Der Übersichtlichkeit halber möchte ich "," als 1000er-Trennzeichen verwenden, und zwar so dass der eingegebene Wert beim Verlassen der Textbox gleich umformatiert wird. Im Grunde genommen will ich das gleiche Eingabeverfahren haben, wie man es aus Excel mit einer entsprechend formatierten Zelle kennt.
Ich habe also ins Exit ereignis meiner Textboxen folgendes geschrieben:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
.Text = Format(.Text, "#,##")
End With
End Sub
So weit so gut. Mein Problem dabei ist folgendes:
Nachkommastellen werden nicht erfasst.
Mir ist klar, dass ich die Textbox auch mit Nachkommastellen formatieren kann, diese möchte ich aber in der Textbox nicht sehen. Im Grunde genommen möchte ich die Textbox genauso haben wie eine Zelle bei der Eingabe in Excel, und zwar dass die Nachkommastellen zwar erfasst sind, aber nicht sichtbar sind. Bei einer Excel-Zelle ist ja bei der Eingabe der Zahl 12345.67 in eine Zelle, die mit 0 Dezimalstellen und mit 1000er Trennzeichen formatiert ist , folgendes sichtbar: 12,346. Für weitere Berechnungen wird dann dennoch mit 12345.67 weitergerechnet.
Auch bei mir werden die Werte weiterverwendet und die korrekte Erfassung der Nachkommastellen ist extrem wichtig. Wie formatiere ich meine Textbox um, so dass die gerundeten und formatierten Werte sichtbar sind, trotzdem beim Auslesen der exakte WErt verwendet wird?
Ich hoffe ich konnte mein Problem einigermaßen rüberbringen und bin gespannt auf Antworten.
Bis dahin beste Grüße,
Sebastian