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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Como evitar a digitação de uma vírgula duas ?
Perk
não registrado
ENUNCIADA !
Postada em 08/03/2007 00:13 hs   
Achei a seguinte solução para colocar no MaxFocus. Veja se vocês concordam ou se é possível melhorar esta minha lógica:
 
If txtConta.Text = Empty Then txtConta.Text = "0,00"
txtConta.Text = Format(txtConta.Text, "#,##0.00")
'verifica se foi digitado vírgula mais de uma vez
a = InStr(Right(txtConta.Text, 2), ",")
If a <> 0 Then MsgBox "Erro": txtConta.SetFocus: Exit Sub
b = InStr(Left(txtConta.Text, (Len(txtConta.Text) - 3)), ",")
If b <> 0 Then MsgBox "Erro": txtConta.SetFocus: Exit Sub
   
Perk
não registrado
Postada em 08/03/2007 00:15 hs   
Onde eu escrevi MaxFocus acima, leia-se MaxFocus
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 08/03/2007 00:37 hs            
Bom, o q vou colocar aqui é semelhante ao modo em que vc digita valores em caixas automáticos de bancos (ao menos do itaú é assim) em que vc apenas digita os número e automaticamente vai formatando. Cole o código no evento keypress da textbox:
 
If Not IsNumeric(Chr(KeyAscii)) Then
    KeyAscii = 0
Else
    If Len(Text1) > 1 Then
        Text1 = Replace(Text1, ",", "")
        Text1 = Left(Text1, Len(Text1) - 1) & "," & Right(Text1, 1)
        Text1 = Format(Text1, "#0.0")
        Text1.SelStart = Len(Text1)
    End If
   
End If
 
Pronto, o usuário apenas digitará números e vc não precisa se preocupar com vírgulas. Lógico que precisará de um ajuste aqui e outro ali mas é só testar que o básico está aí.
 
qq dúvida por favor poste
 
at+
     
Perk
não registrado
Postada em 09/03/2007 17:49 hs   
Ghost_jlp, como sempre sua dica foi muito boa. Que tal acrescentá-la aqui no site ?
 
Abraços
     
CSRocha
BRASILIA
DF - BRASIL
Postada em 09/03/2007 18:52 hs            
No format, divida por 100. Assim (pegando o exemplo do Vilmar):

txtConta.Text = Format$(Val(txtConta.Text/100), "#,##0.00")

Eu instruo num label com essa frase:

"Não digite ponto ou vírgula. Digite 00 no final de valores inteiros" ou use algo parecido, depende da sua criatividade.

A maneira que vc quer até que é possivel, mas vai exigir muita tentativa-e-erro, usando a propriedade Change do textbox. Meio complicado, nunca fiz, mas sei que é possível.
     
Página(s): 2/2     « ANTERIOR  


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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