Formatear TextBox en Excel vba
Cuando se realizan aplicaciones de Contabilidad o que impliquen cantidades relacionadas con dinero, el formato de celdas de Excel nos permite elegir entre diferentes formatos de moneda.
Pero qué sucede cuando mostramos cantidades en un TextBox de un formulario. Si usamos la propiedad Value de un TextBox nos mostrará el valor sin formato alguno. Es ahí donde deberemos hacer uso de la función Format en vba.
Formatear TextBox en Excel vba
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Función Format
La función Format nos servirá para usad cualquier formato que necesitemos mostrar en algún mensaje o control ActiveX. Los parámetros que necesita la función son Valor y Formato.
Format(Valor, “Formato”)
Para este ejemplo usamos un formato de moneda y un formato de fecha.
Para moneda usamos: “$#,##0.00”
Para fecha usamos: “dd-mmmm-yyyy”
Ejemplo
En el ejemplo que les comparto tiene una cantidad en una celda y una fecha en otra. Tenemos un formulario que tiene dos TextBoxes, uno para la cantidad y otro para la fecha. Al dar click en el botón Ver datos, se mostrarán los valores formateados.
Figura 1. Usando la función Formato en Excel vba.
Código vba
A continuación el código usado en el formulario.
Private Sub CommandButton1_Click() ' With Me.TextBox1 .Value = Range("B1").Value .Value = Format(.Value, "$#,##0.00") End With ' With Me.TextBox2 .Value = Range("B2").Value .Value = Format(.Value, "dd-mmmm-yyyy") End With ' End Sub
Anexos
:: Descargar ejemplo Formatear TextBox en Excel vba.rar
Hola compañero.
Tengo un problema con un formulario que estoy creando y buscando soluciones, he llegado a tu blog que me parece muy interesante.
He creado el formulario para que ponga la fecha de ingreso de unas facturas. Ya había conseguido poner el formato que quería a la fecha (dd/mm/aaaa), con otro código, pero este ejemplo tuyo me parece más simple y preciso y lo he adaptado.
La fecha me la pone en la hoja en el formato correcto, pero tengo un problema que al introducir en la hoja del formulario los datos, me los tiene que comparar con otra tabla de otra hoja y si los datos de fecha coinciden poner otra serie de datos que introduces en el formulario en esa segunda hoja en la fecha correspondiente….
No sé ddónde tengo el problema, pero con el formulario no me compara las fechas aunque están con el mismo formato. Sin embargo, si introduzco los datos a través del botón de formulario de la barra rápida de excel, sí compara y hace lo que tiene que hacer…
Te diré que no he estudiado nada de VBa, y lo que sé es de las horas que le estoy metiendo a esto buscando ejemplo por internet, así que es probable que sea un fallo tonto, pero yo no soy capaz de verlo…
Si me dieras alguna pista y me ayudaras te lo agradecería enormemente.
Muchas gracias y un saludo.
Hola Amigos
Quisiera saber si alguno puede ayudarme con un problema que tengo con el formato de fecha.
Tengo 2 sentencias en Visual Excel
Valor = InputBox(“Ingrese la FECHA del movimiento”, “FECHA”)
Range(“MOVIMIENTOS”).Offset(N, 0) = Valor
cuando ingreso la fecha, por ejemplo 10/4 (que para mi es 10 de Abril), en el InputBox,
en la siguiente sentencia, asigna a Valor 4/10 (10 de Octubre).
Mi configuración Regional es dd-mmm-aaaa y en Excel la tengo configurada para que respete esta estructura.
Desde ya muchas gracias si alguno puede ayudarme
El formato que toma el InputBox siempre será mm-dd-yy aunque tu configuración Regional sea distinta.
En el texto puedes dar una sugerencia de que se ingrese la fecha con mm/dd o usar el control DateTimePicker en un formulario para evitar errores de dedo.
Hola Amigos
Quisiera saber si alguno puede ayudarme con un problema que tengo con el formato de fecha.
Tengo 2 sentencias en Visual Excel
Valor = InputBox(“Ingrese la FECHA del movimiento”, “FECHA”)
Range(“MOVIMIENTOS”).Offset(N, 0) = Valor
cuando ingreso la fecha, por ejemplo 10/4 (que para mi es 10 de Abril), en el InputBox,
en la siguiente sentencia, asigna a Valor 4/10 (10 de Octubre).
Mi configuración Regional es dd-mmm-aaaa y en Excel la tengo configurada para que respete esta estructura.
Desde ya muchas gracias si alguno puede ayudarme
El formato que toma el InputBox siempre será mm-dd-yy aunque tu configuración Regional sea distinta.
En el texto puedes dar una sugerencia de que se ingrese la fecha con mm/dd o usar el control DateTimePicker en un formulario para evitar errores de dedo.
como puedo hacer esto pero no para una celda fija?
Y para modificar los textbox en tiempo de ejecucion??? y aparezcan en formato moneda no se puede????
El gran problema de este ejemplo es que si ingresas una cifra con parte decimal se varia completamente el numero. Ejemplo si en la hoja de excel ingreso el numero 10.6 en el form me arrojara el numero 106.00