ich habe ein Problem mit einer Userform, das mich fast den letzten Nerv raubt. In der Userform befinden sich etliche Controls, unter anderem viele Textboxes, die mit einem Tabellenblatt über die controlsource-Eigenschaft verbunden sind.
In die Textboxen sollen Zahlen für Euro-Beträge eingegeben werden können. Um das Format der Eigabe auf #.###,00 zu setzen, wird der value einer jeweiligen Textbox "beforeUpdate" auf Format(textbox.value,"#.###,00") gesetzt.
So weit, so gut. Leider kommt es aber aufgrund der weiteren Zugriff der UF auf das Tabellenblatt immer wieder vor, dass Excel bestimmte Felder im Tabellenblatt "irrtümlich" als geändert ansieht und daraufhin den Wert im vermeintlich geänderten Feld neu in die Textbox der Userform lädt. Da die Textbox kein eigenes Format hat, geht auf diese Weise die Beitragsformatioerung wieder verloren.
Beispiel: In einer Zelle in der Excel-Tabelle steht nach der Eingabe über die Userform die Zahl 1.500,00. In der zugehörigen Textbos steht zunächst derselbe Wert, da beim Verlassen der Textbox bei BeforeUpdate dem Wert der Textbox dieses Format zugewiesen wurde. Bei Eingaben in anderen Textboxen wähnt Excel die Zelle im tabellenblatt mit dem Wert 1.500,00 als geändert und lädt den Wert solchermaßen neu in die Userform. Dabei wird aus 1.500,00 wieder 1500.
Ähnlich ergeht es mit anderen Formatierungen. Kann man das irgendwie abstellen? Kann man irgendwie ein originäres Textbox-Format festlegen? Ich wollte schon per Change-Ereignis das Format festlegen. Aber das funktiobiert nicht, weil jede Veränderung dann die Formatierung auslöst. D.H. aus der ersten Ziffer einer größeren Zahl wird bereits eine Zahl mit zwei dezimalen generiert (so läßt suich also nie 10,00 eingeben, es wird immer 1,00).
Vielleicht kennt jemand das Problem und hat eine Idee. Dafür wäre ich sehr dankbar.
Viele Grüsse
Bjöern