Formato numérico en un userform

Aprendiendo VBA, estoy desarrollando un formulario para facturas y no logro darle el formato numérico en los textbox de los precios, tipo #,##0.00. He buscado por internet, he visto muchas fórmulas y ninguna me funciona. Con algunas no aparece el separador el miles y con otras solo se puede escribir una cifra "#, 00".

¿Funciona en un textbox? ¿Puede funcionar mientras se escribe o solo cuando salimos del textbox?

Si alguien me puede ayudar.

1 respuesta

Respuesta
1

Te dejo la instrucción para el formato Moneda. Es la moneda que tengas en tu configuración regional de Windows.

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

Con la grabadora de macros encendida podrías probar otros formatos Personalizados en alguna celda y así obtener la sintaxis correcta. 

Otra consulta Elsa.

La instrucción que me mandaste funciona con el símbolo "$".Vivo en el Perú y aquí el símbolo es "S/ ", intente cambiar el símbolo en la fórmula pero no me sale.

He pensado en dejar sin símbolo en el textbox ("#,##0.00") y formatear la celda receptiva con el símbolo ("S/"), pero en el momento de llenar la celda desde el textbox, se cambia la configuración de la celda a "formato de texto" y obviamente aparece el número sin el símbolo.

Gracias

Excel trabaja con la Configuración Regional de Windows.

Si tu configuración es correcta te aparecerá la opción S/ entre los formato personalizados para los números.

Sino tendrás que ajustarla desde Windows: Configuración, Panel de control, Región y Reloj... las imágenes te guiarán.

Sdos!

Eso lo hice, en la hoja de excel "Factura", las celdas que reciben los datos ingresados por UserForm, ya están programadas con el formato moneda con el símbolo "S/ ".

2 soluciones:

- Formatear el textbox de UserForm con tu instrucción, cambiando "$" por "S/ " asi: "S/ #,##0.00" - Si ingreso por ejemplo "12.34", en el Textbox aparece "0/ ##,0.00"... No funciona.

- Formatear el textbox sin símbolo de moneda "#,##0.00", sale perfecto en el Textbox "12.34", pero en la celda de la hoja Factura (programada como moneda), me aparece exactamente igual "12.34" sin el símbolo y el comentario a la esquina de la celda: "Numero almacenado como texto". Parece que el formato cambia automáticamente cuando pasa desde UserForm.

No sé si me expliqué bien...

Si ya te aparece entre las opciones de formato, entonces:

- Encendé la grabadora de macros

- Seleccioná una celda sin formato y asignale el que quieras que se vea en la hoja.

- Detené la grabadora y en un módulo encontrarás una instrucción con el formato seleccionado que en mi caso como no es mi moneda aparece así:

Selection.NumberFormat = "[$S/-es-PE]#,##0.00"

Ahora, como se trata de un control de texto para enviarlo a la hoja debes convertirlo en valores, por ejemplo:

 If TextBox1 <> "" Then [B1] = CDbl(TextBox1)

Insisto en que revises la configuración regional para ver cuál es tu separador de decimales. Si es coma pero ingresas un punto se verá como un texto en lugar de un número.

Es todo lo que puedo aportar a distancia.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas