MASCARA DINHEIRO
Private Sub txtvalor_Change()
If Txtvalor.Tag = [Ô][Ô] Then
Txtvalor.Tag = [Ô]1[Ô]
Wvalor = Replace(Txtvalor.Text, [Ô].[Ô], [Ô][Ô])
Wvalor = Replace(Wvalor, [Ô],[Ô], [Ô][Ô])
Txtvalor.Text = Format(Wvalor, [Ô]###,###,###,###.##[Ô])
Txtvalor.SelStart = Len(Txtvalor.Text)
Txtvalor.Tag = [Ô][Ô]
End If
End Sub
Pessoal tentei adaptar esse codigo de mascara , mais qdo .... vo digitar o ponto ou a virgula nenhum me consegue colocar 45,00 .......... o resultado esta ficando assim 4.500
o que há de incorreto
Abs
Marcelo Fazan
If Txtvalor.Tag = [Ô][Ô] Then
Txtvalor.Tag = [Ô]1[Ô]
Wvalor = Replace(Txtvalor.Text, [Ô].[Ô], [Ô][Ô])
Wvalor = Replace(Wvalor, [Ô],[Ô], [Ô][Ô])
Txtvalor.Text = Format(Wvalor, [Ô]###,###,###,###.##[Ô])
Txtvalor.SelStart = Len(Txtvalor.Text)
Txtvalor.Tag = [Ô][Ô]
End If
End Sub
Pessoal tentei adaptar esse codigo de mascara , mais qdo .... vo digitar o ponto ou a virgula nenhum me consegue colocar 45,00 .......... o resultado esta ficando assim 4.500
o que há de incorreto
Abs
Marcelo Fazan
depois colocar no lotfocus do text isso
modulo qualquer
Function Real(Valor) As String
If Valor = [Ô]0,00[Ô] Or IsNull(Valor) Then
Real = [Ô]0,00[Ô]
Else
Real = Format(Replace(Valor, [Ô].[Ô], [Ô],[Ô]), [Ô]###,##0.00[Ô])
End If
End Function
Obrigado Jander
No caso vo usar a função
e nao usar o codigo que postei acima
tentei colocar no lostfocus assim
Private Sub Txtvalor_LostFocus()
[ô]
Real Txtvalor, KeyPress
[ô]
End Sub
mais deu erro
No caso vo usar a função
e nao usar o codigo que postei acima
tentei colocar no lostfocus assim
Private Sub Txtvalor_LostFocus()
[ô]
Real Txtvalor, KeyPress
[ô]
End Sub
mais deu erro
Leo Obrigado ,
testei aqui
Private Sub Txtvalor_GotFocus()
Selecionar Txtvalor
End Sub
Private Sub Txtvalor_KeyPress(KeyAscii As Integer)
CampoMoeda Txtvalor, KeyAscii
End Sub
Me da o seguinte erro compile error
wrong number of arguments or invalid property aassginment
apontando o erro pra esta linha Private Sub Txtvalor_KeyPress(KeyAscii As Integer)
Abs
Marcelo Fazan
testei aqui
Private Sub Txtvalor_GotFocus()
Selecionar Txtvalor
End Sub
Private Sub Txtvalor_KeyPress(KeyAscii As Integer)
CampoMoeda Txtvalor, KeyAscii
End Sub
Me da o seguinte erro compile error
wrong number of arguments or invalid property aassginment
apontando o erro pra esta linha Private Sub Txtvalor_KeyPress(KeyAscii As Integer)
Abs
Marcelo Fazan
MARCELOFAZAN
coloca assim
Txtvalor.text = Real(Txtvalor.text)
coloca assim
Txtvalor.text = Real(Txtvalor.text)
Jander Obrigado novamente
agora a sintax está correta
porem nao fico um padrao universal
pro exemplo do 45,00 funciono corretamente
mais se eu colocar outros valores maiores que 2 duas já desacompanham tudo
1,00 da certo
10,00 da certo
100,0 come um zero
1,000 tira os zero
10,000 vira 10,00
não tem uma forma mais universal de conter isso, tirando que precisarei depois utliizar tb no mostra dados ou ao decorrer do uso do fomulario como setas etc .....
vi que tinha uma propriedade mask
mais nao achei na caixa de propriedades
seria via codigo mesmo text.mask ? nao seria mais facil para utilizar ? ou mesmo deixar essa funcao mais universal com até 999.999.999,99
Abs
Marcelo Fazan
nao teria como ficar uma padronizacao na funcao maior pra 1.000.000,00 dentro desse
agora a sintax está correta
porem nao fico um padrao universal
pro exemplo do 45,00 funciono corretamente
mais se eu colocar outros valores maiores que 2 duas já desacompanham tudo
1,00 da certo
10,00 da certo
100,0 come um zero
1,000 tira os zero
10,000 vira 10,00
não tem uma forma mais universal de conter isso, tirando que precisarei depois utliizar tb no mostra dados ou ao decorrer do uso do fomulario como setas etc .....
vi que tinha uma propriedade mask
mais nao achei na caixa de propriedades
seria via codigo mesmo text.mask ? nao seria mais facil para utilizar ? ou mesmo deixar essa funcao mais universal com até 999.999.999,99
Abs
Marcelo Fazan
nao teria como ficar uma padronizacao na funcao maior pra 1.000.000,00 dentro desse
Olá Barros
tentei colocar aqui
Private Sub Txtvalor_LostFocus()
Txtvalor.Text = Format(Txtvalor, [Ô]currency[Ô])
End Sub
mais se eu digito 1000,00 ele me escreve R$ 1.
ainda nao é o que preciso
Obrigado
Abs
Marcelo Fazan
tentei colocar aqui
Private Sub Txtvalor_LostFocus()
Txtvalor.Text = Format(Txtvalor, [Ô]currency[Ô])
End Sub
mais se eu digito 1000,00 ele me escreve R$ 1.
ainda nao é o que preciso
Obrigado
Abs
Marcelo Fazan
Pessoal agora que vi o MaxLength estava como 5
nunca iria dar certo
obrigado as dicas
acabei achando um exemplo tambem legal no forum
funciono bonitinho
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
Obrigado
Abraços
Marcelo Fazan
nunca iria dar certo
obrigado as dicas
acabei achando um exemplo tambem legal no forum
funciono bonitinho
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
Obrigado
Abraços
Marcelo Fazan
Tópico encerrado , respostas não são mais permitidas