< návrat zpět

MS Excel


Téma: TextBox-formát měny rss

Zaslal/a 5.9.2017 19:48

LanoZdravím,
mám jeden malý problém. Mám TextBox a potřebuji, aby při zadávání do něj se číslo zobrazovalo jak číslo s oddělovačem tisíců a dvěma desetinnými místy (bude se tam zadávat částka Kč). Našel jsem na webu hodně řešení, ale většina byla anglicky a nefungovala. Asi vlivem národního nastavení desetinné čárky-tečky.
Je to sice jen "kosmetický" problém, ale jsem tak trochu puntičkář 1
Díky ka nápady.
Láďda

Příloha: rar37529_textbox.rar (18kB, staženo 34x)
Zaslat odpověď >

#037530
avatar
Format:="#,##0.00"Nicméně si nejsem jistý, jak to bude vhodné pro tento případ, kdy to máš v události TextBox_Change...
P.citovat
#037531
Lano
Hmm, to není ono. Po zadámí jedné číslice (2) se objeví formát 2,00 a další už nejdou zadat.
Mimochodem, jak to bylo myšleno, že to mám v události Change? Do jaké jiné bych to měl dát?citovat
#037535
avatar
1) Formát ve vba není jako v listu.
2) Při dalším číslu se vrať šipkou na pozici.
Můžeš si pamatovat poslední a pak ji obnovit.

Zhruba tak:

Private Sub TextBox1_Change()
Dim pozice As Integer
pozice = Me.TextBox1.CurX
Me.TextBox1.Value = Format(expression:=TextBox1.Value, Format:="#,###.##")
Me.TextBox1.CurX = pozice
End Sub


Formátování ovšem výslednou pozici změní. Pokud to vadí, tak si to uprav.citovat
#037557
Lano
Díky, ale přiznám se, že to neumím upravit tak, aby běžný uživatel zadal číslo bez překlikávání v text boxu. 6citovat
#037558
avatar
Zkombinuj to, co jsem poslal já, s tím co poslal lubo, a máš hotovo ;-)...
P.citovat
#037559
Lano
Díky moc, ale kurňa mě to nefunguje. Když do TB chci zadat třeba 1236,44, tak po zadání 1236 se musím překliknout za desetinnou čárku a doplnit 44. Pokud použiju klávesu desetinnou čárku, mám tam dvě 9
No nic, oni si zvyknou 3 3 3 3
Díkycitovat
#037565
avatar
kosmetický problém ? ... trochu puntičkář ? ... oni si zvyknou ?
Ty jsi teda týpek ...!
Dim vTBX As String
Private Sub TextBox1_Enter()
vTBX = TextBox1.Value
With TextBox1
.SelStart = 0
.SelLength = Len(.Value)
End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If TextBox1.Value = vbNullString Then
TextBox1.Value = 0
ElseIf InStr(TextBox1.Value, Chr(46)) > 0 Then
TextBox1.Value = Replace(TextBox1.Value, Chr(46), Chr(44))
End If
If IsNumeric(TextBox1.Value) Then
vTBX = TextBox1.Value
Else
TextBox1.Value = vTBX
End If
If KeyCode = 13 Then TextBox1.Value = Format(vTBX, Format:="#,##0.00")
End Sub
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje