Sobre formato de text box

Abro esta pregunta para ampliar una consulta sobre mi anterior pregunta sobre multiplicacion de text box que ya me respondieron, el foro dice que no debo ampliar la pregunta asi q abro esta para consultar lo siguiente, espero este haciendo lo correcto.

Querria saber como se puede adjuntaral text box 1 (llamado pes1) el formato de moneda (pesos)

Ahora esta levantando datos de la hoja precios

pes1.Text = Range("precios!d2").Value

Pero sale el numero sin el signo pesos

El text2 que es cantidad pensaba que se agregue automaticamente la sigla Kg, pero como esta puesto que solo permita numeros, calculo que no se debe poder y debo poner una etiqueta con la siga Kg, como esta casilla se cambia manualmente con la cantidad de kilos, me parece que no se podra, si hay alguna chance aqui copio el codigo q estoy usando ahora, gracias a un experto que me lo facilito!

El textbox2 se llama k1

Private Sub K1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii < 48 And KeyAscii <> 44) Or KeyAscii > 57 Then
    KeyAscii = 0
    MsgBox "Error en el dato. Solo se aceptan valores numéricos."
End If
End Sub

Y la misma consulta que en el textbox 1, la hago con el textbox 3 que es el que arroja resultado de la multiplicacion del 1 x el 2, si se puede agregar el formato moneda a esta casilla que trabaja automaticamente,

'x Elsamatilde
If pes1 <> "" And K1 <> "" Then
    st1 = pes1 * K1
End If

2 Respuestas

Respuesta
1

Te anexo el código para poner formato en pes1 y en st1

Te sugiero que no pongas el formato en k1, mejor utiliza una etiqueta para indicar que es "Kg"

Para convertir en valor numérico, lo que se tiene en un formato se utiliza la función CDbl( )

Private Sub K1_Change()
    w_pes1 = 0
    w_k1 = 0
    If IsNumeric(pes1.Value) Then w_pes1 = CDbl(pes1.Value)
    If IsNumeric(K1.Value) Then w_k1 = CDbl(K1.Value)
    st1 = Format(w_pes1 * w_k1, "$ #,##0.00")
End Sub
'
Private Sub UserForm_Activate()
    pes1.Text = Format(Range("precios!d2").Value, "$ #,##0.00")
End Sub
'
Private Sub K1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If (KeyAscii < 48 And KeyAscii <> 44) Or KeyAscii > 57 Then
        KeyAscii = 0
        MsgBox "Error en el dato. Solo se aceptan valores numéricos."
    End If
End Sub

.

Avísame cualquier duda. No olvides valorar todas las respuestas pendientes.

.

Respuesta
1

Fijate en los los formatos de moneda que están en los textbox de este ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas