Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/07/2012 13:25 hs
Segue a função coloque em um módulo
Public Sub MascMoeda(ByVal Controle As TextBox) Dim i As Integer, T as String With Controle T = .Text i = Len(T) - .SelStart T = Replace(.Text, ",", "") If Len(T) < 3 then T = String(3 - Len(T), "0") & T T = Mid(T, 1, Len(T - 1) & "," & Mid(T,Len(T) - 1) T = Format(T, "R$ #,##0.00") If .Text <> T Then .Text = T .SelStart = Len(T) - 1 End With End Sub
e no evento change do textbox coloque assim
Private Sub Text1_Change() MascMoeda text1 End Sub
no evento keypress do mesmo text coloque uma função para permitir apeneas numeros
tipo
If Not ((KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Or KeyAscii = 8) Then Keyascii = 0 End If
ps: desculpe tinha ido almoçar, rs
|
|
|
|
|
Postada em 19/07/2012 13:36 hs
rsrs Então, funciona sim perfeitamente. Faz a mesma coisa que o codigo que mandei anteriormente, mas como eu disse vou procurar outra maneira, pois acredito que irá confundi o cliente, de qlq forma muito obrigada pela atenção. Se e quando eu conseguir fazer da forma que eu quero, mando a solução ok. Bjs mais uma vez muito obrigada.
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/07/2012 13:39 hs
Eu não entendi da maneira que você quer então
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/07/2012 13:46 hs
você quer permitir que o cliente digite as virgulas e pontos, bom isso não é mais usado mas é simples, o ideal digo a você por experiencia própria, se for um sistema em que o usuário final for digitar varios valores e cada vez que ele errar surgir mensagem, com certeza vai ficar um negocio meio moroso.
mas....bast vc tirar todos os pontos e virgulas formatar da maneira que deseja isso no lost focus
exemplo
o cliente digitou
1.234.50
vc tira os pontos usando um replace e depois formata para maneira correta
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 19/07/2012 14:08 hs
Isso mesmo meu anjo, eu quero permitir que meu cliente digite N valores inclusive ponto e virgula assim:
'SOMENTE NUMEROS PONTO E VIRGULA If KeyAscii < 48 Or KeyAscii > 57 Then If Not KeyAscii = 8 And Not KeyAscii = 44 And Not KeyAscii = 46 Then KeyAscii = 0 End If End If aqui só permite que ele digite 1234567890 . e , certo?
então ele irá digitar 1,50 0,50 correto?
ate aqui sem problema mas....e se ele digitar só o ponto ou só a virgula e der um ENTER ou TAB? ai q ta o problema.rsrs
pq se ele deixar em branco, eu consigo reverter assim:
If text1.text = "" then text1.text = "R0,00" else end if
mas se text1.text = " . " ou text1.text = " , " oq fazer?
eu imaginei o seguinte, se eu limitar o text pra receber apenas uma virgula, e / ou um ponto Ex: ele digita virgula..se tentar digitar novamente não funciona se ele digitar um ponto, se ele tentar colocar mais um ponto não vai.. eu eu conseguiria interceptar
tipo text1.text = " , " then text1.text = ""
mais teria que fazer infinitamente..pq se o danado do cliente digita mil ponto? kkk vou ter que fazer mil condições?
Me desculpe eu sou meio perfeccionista...mas agradeço muito sua atenção e dedicação..Obrigada.
|
|
|
|
Postada em 19/07/2012 14:36 hs
oi Treze achei esse código:
If KeyAscii = 44 Then bVirgula = True If bVirgula = True Then TxtValorPago.Text = Mid(TxtValorPago.Text, 1, (Len(TxtValorPago.Text) - 1)) TxtValorPago.SelStart = Len(TxtValorPago.Text) End If bVirgula = True End If
permite apenas uma virgula no textbox, to adaptando aqui, parece que vai funcionar, qlq novidade eu posto aqui..rsrs to adorando esse forum, ta quase uma sala de bate papo..rsrs
T mais bjs
|
|
|
|