Boa Tarde.
Estive pesquisando na net e encontrei este tópico que foi muito util. Apliquei as informações aqui dadas, e funcionou de primeira aqui. Acontece que estou tentando efetuar modificação para um determinado campo utilizando esta técnica mas gostaria que ao digitar os números, fosse formatando em valores: (R$ 1250,00). a medida que fossem digitados, mas não estou conseguindo. Poderia me dar uma orientação de como posso fazer? Desde ficaria imensamente grato.
Segue o código que estava usando, mas só funciona nas teclas numéricas superiores e não das laterais.
Private Sub txtValor_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim zTemp As String
txtValor.TextAlign = fmTextAlignRight
If IsNumeric(Chr(KeyCode)) Or KeyCode = 8 Then
If txtValor.Text <> "" Then
zTemp = txtValor.Text & IIf(KeyCode <> 8, Chr(KeyCode), "")
zTemp = Right(zTemp, Len(zTemp) - 2)
zTemp = Replace(zTemp, ".", "")
zTemp = Replace(zTemp, ",", "")
If KeyCode = 8 Then
If Len(zTemp) > 3 Then
zTemp = Left(zTemp, Len(zTemp) - 1)
Else
zTemp = "0" & Left(zTemp, Len(zTemp) - 1)
End If
End If
zTemp = Left(zTemp, Len(zTemp) - 2) & "." & Right(zTemp, 2)
Else
zTemp = "0.0" & IIf(KeyCode <> 8, Chr(KeyCode), "0")
End If
txtValor.Text = Format(Val(zTemp), "R$ ##,##0.00")
KeyCode = 0
Else
If KeyCode <> 13 And KeyCode <> 9 And KeyCode <> 40 And KeyCode <> 38 Then KeyCode = 0
End If
End Sub