FORMATAR VALOR EM DINHEIRO
exemplo:
se eu tentar colocar o ponto depois do numero 1 ele transforma em virgula e não deixa eu colocar mais de dois zeros,
e se eu colocar 1000,00 ele converte 1,00.
na verdade não esta deixando passar de mil reais só aceita até 999,00
o codigo esta assim:
[txt-color=#e80000]atxtDinheiro.Text = FormatarDec(atxtDinheiro.Text, 2)[/txt-color]
atxtDinheiro.Text = format(atxtDinheiro.Text, [Ô]###.###.##0.00[Ô])
Abraços....
Também, para formatar em moeda vc não precisar informar ponto na parte inteira, somente na parte fracionária pois é o padrão internacional.
Ex.:
nValor = Format(1000, [Ô]0.00[Ô]), vai sair: 1.000,00
Citação:Private Sub txtvalor_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
On Error Resume Next
Txtvalor = FormatNumber(Txtvalor, 2)
If Txtvalor = [Ô][Ô] Then
Txtvalor = [Ô]0,00[Ô]
CmdGravar.SetFocus
Exit Sub
Else
CmdGravar.SetFocus
End If
End If
End Sub
Private Sub txtvalor_KeyPress(KeyAscii As Integer)
sQtdeVirgulas = Split(Txtvalor, [Ô],[Ô])
If UBound(sQtdeVirgulas) > 0 Then
If KeyAscii = 44 Or KeyAscii = 46 Then
MsgBox [Ô]ERRO DE DIGITAÇÃO[Ô], vbCritical, [Ô]ERRO[Ô]
KeyAscii = 0
End If
End If
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 46 And KeyAscii <> 44 And KeyAscii <> 13 And KeyAscii <> 8 Then KeyAscii = 0
End Sub
Private Sub txtvalor_LostFocus()
If Txtvalor = [Ô][Ô] Or Left(Txtvalor, 1) = [Ô].[Ô] Or Left(Txtvalor, 1) = [Ô],[Ô] Then
Txtvalor = [Ô]0,00[Ô]
Else
Txtvalor = FormatNumber(Txtvalor, 2)
End If
End Sub
Private Sub Command1_Click()
Dim VALOR As Currency
VALOR = [Ô]1000,00[Ô]
Print VALOR
Print Format(VALOR, [Ô]CURRENCY[Ô])
Print Format(VALOR, [Ô]STANDARD[Ô])
End Sub