Osiris Darío Salazar Cabello
en el evento del textbox pon esto
Private Sub TextBox1_Change()
TextBox1 = Format(TextBox1.Value, "##.##0,00")
End Sub
Recuerda que los puntos o comas para separarar los miles no le dan la
caracteristica de "Formato numerico", eso es solo son mascarillas de edicion.
--
Saludos
Servando Villalon
> Se puede poner formato numerico a un textbox que esta en un formulario?
> El textbox toma un numero de una celda de excel pero lo muestra asi: 123456789,01
> y yo quiero que en el textbox se vea asi: 123.456.789,01
este tema se ha tocado en varias conversaciones anteriormente
tiene que ver con cuadros de texto vinculado a celdas en la hoja de calculo
una de las mas recientes te la copio/pego a continuacion (portas armarte tus conculsiones)
(de todas formas) si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
===
1) es un comportamiento normal (???) del textbox =>cuando esta ligado a una celda<=
es este el caso ?, porque ademas, como VBA es US-Centric, las funciones como Val(), Format() y similares...
-> no aceptan la coma como separador valido para las decimales :D sin embargo...
2) un textbox (ligado) NO acepta el punto como un caracter valido para sus propiedades .Value/.Text
aun si lo introduces en esos campos en la ventana de propiedades (en tiempo de dise#o)
y... dicho sea de paso... OJO... porque tambien
-> le desaparece el formato a la celda donde esta vinculado el textbox y le aplica uno numerico con 0 decimales
3) (al parecer) es un bug-no-atendido, que SOLO se presenta en las versiones non-us-centric de excel
a pesar de que (el uso entendido de) un textbox toma (preferentemente) TEXTOS y debiera aceptar CUALQUIER caracter,
(en el caso de valores ligados a una celda) pareciera asumir que toda version non-us-centric usa la coma en las decimales
=>viene presentandose desde la version 97 hasta la version 2007<=
prueba: un formulario con dos textboxes (uno ligado a alguna celda y otro libre) mas un commandbutton (para los mensajes)
la celda vinculada al textbox1 contiene 123.45
en el textbox2 se introduce la misma figura/cantidad de 123.45 (nota: el separador decimal usando el punto del teclado numerico)
dado que vba es us-centric, los miles se separan por coma y las decimales por punto en funciones como Format(... etc.
por lo que el codigo para el commandbutton1 permanece sin modificaciones :))
Private Sub CommandButton1_Click()
MsgBox "Ligado: " & Format(TextBox1, "#,##0.00") & vbCr & _
"Origen: " & Format(Range(TextBox1.ControlSource), "#,##0.00") & vbCr & _
"Libre : " & Format(TextBox2, "#,##0.00")
End Sub
op1: configuracion americana (la mia por omision :))) -> separddores: decimales/punto, miles/coma, listas/coma
a) la celda se muestra como: 123.45 (al igual que el textbox2 cuando se introducen los datos)
b) el textbox1 (ligado) muestra 123,45
c) el cuadro de mensajes devuelve:
Ligado: 12,345.00
Origen: 123.45
Libre : 123.45
op2: cambiando a configuracion europea -> separadores: decimales/coma, miles/punto, listas/punto_y_coma
a) la celda se muestra como: 123,45 (diferente al textbox2 cuando se introducen los datos... -> 123.45)
b) el textbox1 (ligado) muestra 123,45 (no hay cambios en el textbox ligado)
c) el cuadro de mensajes devuelve:
Ligado: 123,45
Origen: 123,45
Libre : 12.345,00
op3: todavia usando la configuracion europea, pero... usando la coma (teclado alfanumerico) al llenar el textbox2...
a) la celda se muestra como: 123,45 (al igual que el textbox2 cuando se introducen por teclado alfanumerico -> 123,45)
b) el textbox1 (ligado) muestra 123,45 (no hay cambios en el textbox ligado)
c) el cuadro de mensajes devuelve:
Ligado: 123,45
Origen: 123,45
Libre : 123,45
los demas comportamientos posibles (modificar el textbox ligado y/o la celda vinculada en tiempo de ejecucion)...
siguien siendo bizarros (segun los comentarios previos de este mensaje)
Private Sub TextBox1_Change()
TextBox1 = Format(TextBox1.Value, "##,##0.00")
End Sub
No sé exactamente que es, pero me funciona. Me da los puntos para los miles
y la coma para los decimales y puedo hacer operaciones matemáticas con los
cuadros de texto.
Hice varias pruebas y funciona. Espero que no me salga algo raro mas adelante.
Osiris Darío Salazar Cabello
"Héctor Miguel" escribió:
Daniel Medina.
> Tengo un caso similar, probe el codigo que utilizo Osiris, pero en mi TextBox queda como el texto que lo ocupa.
> Yo lo configure de manera que me apareciera como un numero de telefono ("01(##)##-##-####")
> pero al seleccionar este cuadro, se llena en automaico con ceros y a continuacion aparecen los numeros que yo escribo
> entonces aparece como "01(00)00-00-00005864126879" como debo configurarlo? ...
comenta los "como" haces (exactamente) para "configurar" un textbox para "enmascarar" datos PREVIOS a su entrada (???)
saludos,
hector.