Tausender-Trennung
#1
Hallo miteinander,

wie kann ich es anstellen, dass beim schreiben in eine Textbox (es werden nur Zahlen eingegeben) Werte mit einer Tausender Trennung angezeigt werden?

Also statt 100000 -> 100.000
Oder eben statt 10000 -> 10.000
aber trotzdem wenn 10 dann auch 10

Kommata werden nicht eingegeben und sollen auch nicht angezeigt werden.

Gefunden dazu habe ich     


Code:
TextBox1.Text = Format(TextBox1.Text, "#,##0.00")
   

Das verwürfelt aber eine kleine Zahl komplett  :22:


Viele Grüße
Klaus
Top
#2
Wenn keine Kommata angezeigt werden sollen, wieso schreibst du sie dann ins Format hinein? (0.00)
Code:
TextBox1 = Format(UserForm1.TextBox1, "#,##0")
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Klaus
Top
#3
Vielen Dank MisterBurns,

ich werd dir mal sagen, dass ich bisher das 0.00 nicht als Komma sondern als Punktierung angesehen habe. 
Offensichtlich steht da ja ein Punkt - kein Komma...
Kein Wunder das ich mir das selber nicht zusammen gereimt bekommen habe.

Ich danke dir vielmals - es funktioniert jetzt perfekt.

Viele Grüße
Klaus
Top
#4
Hallo in die Runde,

leider klappt das so doch noch nicht.

Jetzt wird in das Feld in welches der Wert der Textbox übergeben wird, nur alle Zahlen vor der Punktierung übernommen.
Bei 100.000 wird also nur 100 übernommen.

[A1] = Textbox1.Value

(Die Zelle selbst ist mit Tausender Trennung formatiert)
Was kann ich tun damit das korrekt übergeben wird?

Viele Grüße
Klaus
Top
#5
Zitat:ich werd dir mal sagen, dass ich bisher das 0.00 nicht als Komma sondern als Punktierung angesehen habe.
Offensichtlich steht da ja ein Punkt - kein Komma...

Aber nicht im amerikanischen Englisch, denn das ist die Sprache von VBA.

Code:
Range("A1") = CDbl(UserForm1.TextBox1)

Du hast soeben eine der Problematiken von Userforms erkannt. Bei jeder Zahlenverarbeitung in einer Textbox muss man Kopfstände machen. Textboxen enthalten grundsätzlich immer Text. Man muss ihnen erst umständlich sagen, dass sie eine Zahl daraus machen sollen.
Gerade für Anfänger (und ich bin selber kein Profi) ist es häufig klüger, auf die "professionellen" Userforms zu verzichten und stattdessen ein Tabellenblatt zum Eingabeformular zu machen. Bietet sämtliche Vorteiler der Excel Boardmittel, ohne sich mit den Nachteilen von Userforms plagen zu müssen. Nicht alles, was professionell wirkt, ist es auch.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Klaus
Top
#6
Hallo,


[A1].NumberFormat = "@"
[A1] = Textbox1.Value

In einer TextBox steht Text, deshalb solltest du die Zelle als "Text" formatieren.

Sigi
[-] Folgende(r) 1 Nutzer sagt Danke an Sigi.21 für diesen Beitrag:
  • Klaus
Top
#7
Vielen Dank an Euch beide,

ich habe nun die Version von Sigi.21 verwendet.
Gleich mal in meinem Köpfchen eingemeißelt das :)

Dankeschön
Top
#8
Zitat:ich habe nun die Version von Sigi.21 verwendet.
Dann erklär doch mal, welchen Vorteil du dir davon versprichst, eine Zahl (du willst ja offensichtlich eine Zahl erfassen) als Text in die Zelle zu übergeben.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Klaus
Top
#9
Moin!
Zumal das ja nun mal rein gar nixxx mit der Threaderöffnung zu tun hat ...

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#10
Hallo MisterBurns,

ja ich verstehe was du meinst. 
Darüber, dass es dann ein Text, statt einer Zahl ist, habe ich noch gar nicht nachgedacht.
Ist mir auch nicht aufgefallen, da es in der Liste "nur" zur Ansicht steht. Wird also rechnerisch nicht mehr ausgewertet.
Aber es stimmt. Im Falle dessen, dass dies doch mal gewünscht wird, werde ich das besser korrigieren.

Danke für den Hinweis.


Viele Grüße 
Klaus
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste