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
|
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
|
|
|
|