USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Problema com textbox moeda!
Treze
Pontos: 2843 Pontos: 2843
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

   
tytazinha
EMBU
SP - BRASIL
ENUNCIADA !
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
Pontos: 2843 Pontos: 2843
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
Pontos: 2843 Pontos: 2843
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
 
tytazinha
EMBU
SP - BRASIL
ENUNCIADA !
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.

   
tytazinha
EMBU
SP - BRASIL
ENUNCIADA !
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
   
Página(s): 2/4     « ANTERIOR    PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página