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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Digitar números num TextBox
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 17/12/2007 12:32 hs            
Gostaria de inserir um valor num TextBox, onde fosse numeros inteiros, digitados da direita para a esquerda e quando atingisse a casa de 1000, automaticamente o vb o programa inserisse o ponto milhar.
Alguém tem algum exemplo disso?
Já peguei um exemplo com data, no qual eu digito apenas os números e o programa automaticamente coloca as barras para mim. Mas com o ponto de milhar eu ainda não consegui. Alguém poderia me ajudar, por favor?
   
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 17/12/2007 13:40 hs            
Acho que assim fica bem legal, assim que digita o primeiro numero ja joga na forma monetaria e põe o cursor após o primeiro numero e de acordo o numero for sendo digitado os pontos vão aparecendo, faz o teste ...
 
Private Sub Text1_Change()
Text1.Text = Format(Text1.Text, "currency")
Text1.SelStart = 3
End Sub
     
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 17/12/2007 15:26 hs            
Infelizmente, não é isso que eu preciso.
E também não é formatação de moeda e sim, de números inteiros. Ex: 1.000 ou 50.000
Eu queria digitar da direita para a esquerda e quando chegasse a 1000, a rotina colocaria o ponto e eu continuaria a digitar o valor.
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 17/12/2007 18:02 hs            
Se liga neste código
 
creio que seja o que você pediu foi dificil fazer deve haver uma forma melhor
 
mas enquanto ninguem posta aqui veja se esta serve
 
primeiro no campo de texto na propriedade alignment deve estar com 1- Right Justify
 
agora inclua no evento Keyup do campo text o seguinte código
 
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Len(Text1.Text) = 4 Or Len(Text1.Text) = 8 Or Len(Text1.Text) = 12 Then
Text1.Text = Format(Text1.Text, "Standard")
Text1.Text = Mid(Text1.Text, 1, Val(Len(Text1.Text) - 3))
Text1.SelStart = Len(Text1.Text)
End If
End Sub
 
E por favor poste dizendo se funcionou, pois quebrei a cabeça pra criar este código
 
ate´
 
 
   
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 18/12/2007 10:01 hs            
Obrigado pela ajuda Treze, mas assim não deu certo.
Quando vou digitar 10.000 por exemplo, eu digito o 1, depois quando eu digito o terceiro numero zero, aparece na TextBox 1.00 e se eu continuar digitando zeros, eles são colocados depois do ponto, ou seja o ponto não permanece na posição correta, que seria da direita para a esquerda, a quarta casa. Entende?
 
Eu tenho uma rotina que faz isso com valores de moeda, colocando para mim os pontos e a vírgula. Dê uma olhada nela e vê se consegue fazer uma adaptação para este caso, pois eu tentei e ainda não consegui.
 
 
Crie uma TextBox com alinhamento à direita e escreva no evento KeyPress:
 
Private Sub TxtValor_KeyPress(KeyAscii as Integer)
 If KeyAscii = 8 Then
        ' se campo estiver vazio, não faz nada
        If TxtValor.Text = "" Then
            Exit Sub
        End If
        'deleta o número à esquerda do cursor
        TxtValor.Text = Left(TxtValor.Text, Len(TxtValor.Text) - 1)
        TxtValor.SelStart = Len(TxtValor.Text)
    End If
    If Len(TxtValor.Text) = 10 Then
        KeyAscii = 0
        Exit Sub
    End If
    If Len(TxtValor.Text) = TxtValor.SelLength Then
        If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyEscape Then
            Exit Sub
        End If
    End If
    If Not IsNumeric(Chr(KeyAscii)) Then
        KeyAscii = 0
    Else
        If Len(TxtValor.Text) > 1 Then
            TxtValor.Text = Replace(TxtValor.Text, ",", "")
            TxtValor.Text = Left(TxtValor.Text, Len(TxtValor.Text) - 1) & "," & Right(TxtValor.Text, 1)
            TxtValor.Text = Format(TxtValor.Text, "###,##0.0")
            TxtValor.SelStart = Len(TxtValor.Text)
        End If
    End If
End Sub
 
 
   
aNDREW
não registrado
ENUNCIADA !
Postada em 16/07/2016 13:46 hs   
TESTA AI

Private Sub txtBalanca_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 8, 48 To 57 ' {Backspace}, {0} a {9}, aceita estes caracteres. ' Continua
Case Else
KeyAscii = 0 ' Demais teclas, não aceita.
End Select
If Len(UserForm1.txtBalanca) >= 1 And Len(UserForm1.txtBalanca) < 2 Then
UserForm1.txtBalanca = Format(UserForm1.txtBalanca, "##")
ElseIf Len(UserForm1.txtBalanca) > 2 Then
UserForm1.txtBalanca = Format(UserForm1.txtBalanca, "##.#")
End If
End Sub
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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