Formatação TextBox ...
 
Notifications
Clear all

Formatação TextBox VBA Excel.

6 Posts
2 Usuários
0 Reactions
11.8 K Visualizações
(@lcfilho)
Posts: 8
Active Member
Topic starter
 

Senhores (as), uma dúvida cruel.
Como formatar um TextBox para o formato moeda?
Gostaria de formatar o TextBox "txtValor" do arquivo em anexo.
Agradeço antecipadamente e peço desculpas caso minha postagem esteja no 'lugar' errado.
Cordialmente,
Luiz Carlos.

 
Postado : 19/05/2014 12:44 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

LCFILHO,

Boa Tarde!

O projeto do arquivo que você enviou está protegido por senha.

Solicitamos, da próxima vez que anexar arquivo aqui no fórum, que compacte o mesmo com ZIP ants de anexar (por menor que seja o mesmo (são as regras do fórum).

Em tese, para formatar como moeda a saída de um TextBox você poderia utilizar o seguinte código:

Range("A1").Value = Format(TextBox1.Text, "#,##0.00")

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 19/05/2014 12:56 pm
(@lcfilho)
Posts: 8
Active Member
Topic starter
 

Perdoe-me, Sr. Wagner Morel.
O novato sempre dá trabalho.
Fiz o sugerido. No entanto, o TextBox continua a dar trabalho.
Reenviando arquivo, agora sem senha e compactado.
Cordialmente,
Luiz Carlos.

 
Postado : 19/05/2014 1:10 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ok.

Havia entendido que você queria inserir na célula o valor do textbox no formato de moeda...

Mas o que você quer é uma máscara para o TextBox de modo que quando o usuário digitar no TextBox fique no formato de moeda. Não é isso?

Pois bem. Nesse caso, desabilite esse evento KeyPress que você utilizou e utilize o mesmo código den tro do evento Exit do TextBox. Assim, sempre que o usuário digitar o valor no textbox e sair do TextBox, o mesmo adotará o formato de moeda.

Assim, desabilite esse evento:

Private Sub txtValor_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'txtValor = Format(txtValor, "R$ #,###0.00")
End Sub

E habilite esse evento:

Private Sub txtValor_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txtValor = Format(txtValor, "R$ #,###0.00")
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 19/05/2014 1:28 pm
(@lcfilho)
Posts: 8
Active Member
Topic starter
 

De fato, Sr. Wagner Morel, com o evento KeyPress não deu certo.
Agora, como seria a máscara utilizando KeyPress?
Cordialmente,
Luiz Carlos.

 
Postado : 19/05/2014 1:35 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Cara,

O que você quer é uma máscara na TextBox. Ou seja, assim que o usuário acessar a TextBox e for digitando, automaticamente os número fiquem com formato de moeda.

Isso teria que se desenvolver uma função específica que capturasse os números digitados e fosse tratando, automaticamente, para inserir a vírgula e os pontos. Confesso que não tenho e nem consegui achar uma função como essa. (se alguém tiver, também ficarei contente em guardar mais um código importante como esse).

Até conheço (mas é no VB e não no VBA) um objeto (Masked Edit) que possui a propriedade Mask que se pode definir a máscara de moeda. Todavia, ao que parece, esse objeto não é aceito no Excel.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 19/05/2014 8:40 pm