¿Cómo dar formato currency al ingresar un dato en un textbox?

Hola, soy novato en programar con VBA. Hice un formulario en el cual hay un cuadro de texto en el que se ingresan datos (importes) y quiero que para una mejor visualización en la carga el mismo tenga este formato. El textbox1 es:

Private Sub TextBox2_Change()
Sheets("Vtas_Dat").Select Range("g3").Select ActiveCell.FormulaR1C1 = Val(TextBox2)
End Sub

Probé de agregar: TextBox1.Text = Format(TextBox1, "Currency") pero al cargar el dato solo deja cargar un valor (un dígito) y se traba.

Desde ya muchas gracias, es muy bueno el foro.!!

saludos.

2 respuestas

Respuesta
2

No utilices el evento Change, porque cada cambio hace que se vuelva a ejecutar.

Utilizá Exit o AfterUpdate en su lugar.

También te aclaro que una cosa es el formato con que quieras que se vea en el control y otro con el que debe ser enviado a la hoja.

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox5) Then
MsgBox "Este campo debe ser numérico"
Cancel = True 'esta instrucción hará que el foco siga en el mismo control, hasta que el dato ingresado sea correcto
End If

'para enviar con formato a la hoja

Sheets("Vtas_Dat").Range("g3") = CDbl(textbox5)

'La siguiente es un ejemplo para mostrar formato $ al control:
TextBox5 = Format(TextBox5, "$ ##,##0.00")
End Sub

Sdos. Si quedó comprendido y resuelto no olvides finalizar la consulta

Muchas Gracias..!! excelente vtra. respuesta solucionó perfectamente mi planteo.

Vaya de mi parte un gran agradecimiento por vuestra desinteresada colaboración para difundir conocimientos tan valiosos.

Respuesta

Solo para decir que llevaba días buscando resolver el mismo problema y por fin la encontré.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas