EDITAR VALOR CAIXA DE TEXTO
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
Private Sub valor_seguro_KeyPress(KeyAscii As Integer)
tecla1=13
If KeyAscii = tecla1 Then
guarda_valor_seguro = valor_seguro
End If
End Sub
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
. . .
COMO DEVO USAR O MaskEditBox?
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 . . .
Eu não gosto do MaskEdite. Veja esses códigos com a textbox
Formato moeda igual aos caixas de banco
Outro exemplo
Formato moeda igual aos caixas de banco
Outro exemplo
Dionisio... use o primeiro exemplo que o Robiu passou... testei aqui e é ótimo. Até coloquei no meu módulo comum dos meus programas...
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[Ô]
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