Avatar billede Nicolai Nybegynder
23. marts 2004 - 20:19 Der er 11 kommentarer og
1 løsning

Tusindtalsseperator i textfelt

Hvordan kan jeg anvende automatisk tusindtals sperator i et tekstfelt mens brugeren indtaster i et tekstfelt?

Jeg øsnker altså at brugeren taster 1000000 ind i et tekstfelt, men allerede mens han taster skal den sætte "." ind (1.000.000), så man hele tiden kan følge med i hvad man taster.

Findes der en løsning på dette?
Avatar billede kabbak Professor
23. marts 2004 - 20:56 #1
Private Sub Text1_Change()
Text1.Text = Format(Text1.Text, "#,###0")
Text1.SelStart = Len(Text1.Text)
End Sub
Avatar billede Nicolai Nybegynder
24. marts 2004 - 07:19 #2
Hvor svært kan det være.... :o) Super.. Tak for hjælpen... Læg lige et svar, så du kan få de meget fortjente point - hurtigt og præcist svar.. Takker... :o)
Avatar billede kabbak Professor
24. marts 2004 - 08:19 #3
et svar ;-))
Avatar billede Nicolai Nybegynder
24. marts 2004 - 17:57 #4
Jeg har faktisk testet det yderligere og desværre skaber det et problem, da den ikke laver tallet om til 500.000 men til 500,000 - og i beregninger tæller det kun for femhundrede og ikke femhundredetusinde.

Hvad gør jeg galt?
Avatar billede Nicolai Nybegynder
24. marts 2004 - 18:09 #5
Jeg bør måske tilføje at den viser det rigtigt på skærmen (altså 500.000) men at den i beregninger anvender taller 500,000 - svarende til kun 500!
Avatar billede kabbak Professor
24. marts 2004 - 18:31 #6
Så er vi nødt til at udakifte "#,###0" med "#.###0"
punktum i stedet for komma, hvis du tjekker, vil du se at det vises modsat i tekstboksen.

det ser bare ikke så pænt ud

Private Sub Text1_Change()
Text1.Text = Format(Text1.Text, "#.###0")
Text1.SelStart = Len(Text1.Text)
End Sub
Avatar billede Nicolai Nybegynder
24. marts 2004 - 18:39 #7
Det viker heller ikke.. Nu skriver den 6,0000 Hvis jeg prøver at skrive 60000....
Avatar billede kabbak Professor
24. marts 2004 - 19:02 #8
prøv så denne

Private Sub Text1_Change()
Text1.Text = Format(Text1.Text, "##,##")
Text1.SelStart = Len(Text1.Text)
Label1.Caption = (Text1.Text) / 10 ' deviderer resultatet med 10 og viser det i Label1
End Sub


jeg kan regne på den nu, og det ser rigtig ud
Avatar billede slo Nybegynder
29. marts 2004 - 13:36 #9
kabbak: Hvorfor bruger du #,###0 og ikke #,##0 i dit første svar??
Avatar billede kabbak Professor
29. marts 2004 - 13:41 #10
Fordi "," i vba, bliver omdannet til "." i tekstboxen, men det er decimaltegnet i amerika.
Derfor er du nødt til at bruge"." i vba, det bliver vist som "," i tekstboxen, og det er amerikansk tusindtals adskiller.
Avatar billede kabbak Professor
29. marts 2004 - 13:42 #11
det var fordi jeg ikke tængte mig om ;-))
Avatar billede Nicolai Nybegynder
30. marts 2004 - 16:26 #12
Det virker endelig som det skal... Takekr for din indsats... :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester