Formato precio en textbox mientras se escribe

Estoy haciendo un inventario en vba excel para la universidad y esta casi listo, lo malo es que al momento de poner precio de costo en un testbox o precio de venta, estos aparecen como numero mientras se rellena el textbox.

Es posible que mientras escribo en un textbox, este me de un formato similar a esto: $10.450 y al guardar quede tal cual

1 respuesta

Respuesta
4

H o l a:

Esta podría ser una opción, pon el siguiente evento en tu formulario

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And Not KeyAscii = 46 Then
        KeyAscii = 0
    End If
    TextBox1 = Replace(TextBox1, "$", "")
    TextBox1 = "$" & TextBox1
End Sub

Cambia el textbox1 por el nombre de tu control que tiene el costo


Para pasar el textbox1 a una celda utiliza lo siguiente:

[A2] = CDbl(TextBox1)

En el textbox se almacena un texto, es por eso que tienes que convertir el textbox1 a número.


En la celda o celdas donde vas a poner el valor del textbox1, cambia el formato de celdas a Moneda.


Estimado.

En teoría esta bien, gracias pero le falta el . la idea tal cual sirve pero al formato se le puede poner . para que quede como moneda chilena, algo así

$10.450 o $1.500.125 o $1.945

Esos son los formatos de peso chileno

H o l a:

Lograr ese formato mientras escribes es complicado, te recomiendo que se haga el formato después de capturar el valor.

Entonces quita el evento

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And Not KeyAscii = 46 Then
        KeyAscii = 0
    End If
    TextBox1 = Replace(TextBox1, "$", "")
    TextBox1 = "$" & TextBox1
End Sub

Y pon este evento:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1 = Format(TextBox1, "$#,##0.00")
End Sub

El formato se mostrará cuando salgas del textbox, presionando enter o  tab.

De igual forma, al pasar el textbox a la celda tienes que cambiarlo a número:

[A2] = CDbl(TextBox1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas