EDITAR VALOR CAIXA DE TEXTO

DIONISIO 22/06/2010 20:12:32
#345538
BOA NOITE, ALGUEM PODE ME AJUDAR, TENHO ESTA PRIVATE ABAIXO, PARA DIGITAR VALOR, EXIISTE UMA MANEIRA NA QUE EU FOR DIGITANDO JA APARECER O VALOR COM VIRGULA. EX: R$ 120,12, ALGUEM PODE ME AJUDAR.


Private Sub valor_seguro_KeyPress(KeyAscii As Integer)
tecla1=13
If KeyAscii = tecla1 Then
guarda_valor_seguro = valor_seguro
End If
End Sub
MICROSCHEME 22/06/2010 20:29:14
#345540

Cara


Eu costumo usar formatação no evento LostFocus do text

Tipo:

Text010.Text = Format(Text010.Text, [Ô]##,###,##0.00[Ô])

Agora se tu quizer direto na digitação tem que usar o MaskEditBox com essa formatcação ##,###,##0.00 na propriedade
Mask do controle

. . .




DIONISIO 22/06/2010 20:35:47
#345541
COMO DEVO USAR O MaskEditBox?
MICROSCHEME 22/06/2010 20:45:18
#345542

Desculpa cara.

A melhor maneira e colocar #,###,##0.00;($#,###,##0.00) deixando em branco a propriedade mask do masedbox

Pra usar o maskedbox é só referenciar o controle Microsoft Masked Edit Control 6.0 (SP6) na tua guia de controles

Ok . . .
ROBIU 22/06/2010 21:14:26
#345545
Eu não gosto do MaskEdite. Veja esses códigos com a textbox
Formato moeda igual aos caixas de banco
Outro exemplo
LIZANDER 22/06/2010 21:29:26
#345547
Dionisio... use o primeiro exemplo que o Robiu passou... testei aqui e é ótimo. Até coloquei no meu módulo comum dos meus programas...
BARBOZA1985 23/06/2010 10:56:14
#345574
Resposta escolhida
amigo, para voce formatar o valor enquanto estiver digitando é só copiar essa minha rotina

Option Explicit
Dim ddValor As Boolean
Private Sub txtValor_KeyDown(KeyCode As Integer, Shift As Integer)
txtValor.SelStart = Len(txtValor)
If KeyCode = 46 Or KeyCode = 8 Then Exit Sub
KeyCode = 0
End Sub
Private Sub txtValor_KeyPress(KeyAscii As Integer)
If Len(txtValor) > 22 Then KeyAscii = 0
txtValor.SelStart = Len(txtValor)
If KeyAscii = 44 And InStr(1, txtValor, [Ô],[Ô]) = 0 Then Exit Sub
If KeyAscii > 47 And KeyAscii < 58 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
KeyAscii = 0
End Sub
Private Sub txtValor_Change()
[ô]Em caso de Valores
If ddValor = True Then Exit Sub
Dim ddValor2 As String
ddValor = True
ddValor2 = txtValor
If Len(ddValor2) - InStr(1, ddValor2, [Ô],[Ô]) = 2 Then Exit Sub
While InStr(1, ddValor2, [Ô].[Ô]) <> 0
ddValor2 = Mid(ddValor2, 1, InStr(1, ddValor2, [Ô].[Ô]) - 1) & _
Mid(ddValor2, InStr(1, ddValor2, [Ô].[Ô]) + 1)
Wend
ddValor2 = Mid(ddValor2, 3, InStr(1, ddValor2, [Ô],[Ô]) - 3) & _
Mid(ddValor2, InStr(1, ddValor2, [Ô],[Ô]) + 1)
[ô]Colocar as casas decimais
ddValor2 = Val(ddValor2) / 100
If ddValor2 = [Ô]0[Ô] Then ddValor2 = [Ô]0,00[Ô]
ddValor2 = FormatCurrency(ddValor2)
[ô]mandar o foco para o final do controle
txtValor = ddValor2
txtValor.SelStart = Len(txtValor)
ddValor = False
End Sub

[ô]O TXT DEVE SE CHAMAR TXTVALOR E A PROPRIEDADE TEXT DELE DEVE TER O VALOR [Ô]R$ 0,00[Ô]
Tópico encerrado , respostas não são mais permitidas