kurkas,
Tente adaptar as suas condicoes, pelo menos atende a sua 2ª ( "E quando eu digitar por exemplo: 4534 ela apresente 45,34" ).
Private Sub TxtSeuText_Change()
Dim i As Integer, T As String
With TxtSeuText
'Armazena o Text, para nao causar o evento change a toa
T = .Text
'Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.
i = Len(T) - .SelStart
'Tira a virgula da var T
T = Replace(.Text, ",", "")
'Acrescenta zeros
If Len(T) < 3 Then T = String(3 - Len(T), "0") & T
'Monta o nr separando as casas
T = Mid(T, 1, Len(T) - 2) & "," & Mid(T, Len(T) - 1)
'Formata o nr para tirar os zeros a mais q podem ficar no começo
T = Format(T, "#,##0.00")
'Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)
If .Text <> T Then .Text = T
'Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes
.SelStart = Len(T) - i
End With
End Sub
Fonte: codigo postado em outro site pelo: Reinaldo L. De Marco
Click em se a resposta foi util!
Postado : 18/01/2014 1:07 pm