textbox con formato numérico

24/07/2008 - 22:23 por GRIEGO59 | Informe spam
Hola!
Se puede poner formato númerico a un textbox que está en un formulario?
El textbox toma un numero de una celda de excel pero lo muestra así:
123456789,01
y yo quiero que en el textbox se vea así.
123.456.789,01
Gracias por la ayuda

Osiris Darío Salazar Cabello

Preguntas similare

Leer las respuestas

#1 Servando
24/07/2008 - 23:02 | Informe spam
Osiris:

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
Respuesta Responder a este mensaje
#2 Héctor Miguel
24/07/2008 - 23:46 | Informe spam
hola, Darío !

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)
Respuesta Responder a este mensaje
#3 GRIEGO59
25/07/2008 - 05:01 | Informe spam
Hola!
Gracias por sus respuestas.
Hector, no te entendí mucho, bueno, casi nada, pero tomé algo de tu código y
lo combiné con el código de Servando y me salió otro código porque con el
codigo de servando no me daba los puntos para miles y me salían cinco
decimales. Entonces salió este código.

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ó:

hola, Darío !

> 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)



Respuesta Responder a este mensaje
#4 Roomytomcat
09/12/2009 - 15:20 | Informe spam
hola a todos.
Tengo un caso similar, probé el código que utilizó Osiris, pero en mi
TextBox queda como el texto que lo ocupa.
Yo lo configuré de manera que me apareciera como un numero de teléfono
("01(##)##-##-####") pero al seleccionar este cuadro, se llena en automático
con ceros y a continuacion aparecen los numeros que yo escribo, entonces
aparece como "01(00)00-00-00005864126879" ¿cómo debo configurarlo?

Daniel Medina.

"GRIEGO59" wrote:

Hola!
Gracias por sus respuestas.
Hector, no te entendí mucho, bueno, casi nada, pero tomé algo de tu código y
lo combiné con el código de Servando y me salió otro código porque con el
codigo de servando no me daba los puntos para miles y me salían cinco
decimales. Entonces salió este código.

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ó:

> hola, Darío !
>
> > 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)
>
>
>
Respuesta Responder a este mensaje
#5 Héctor Miguel
09/12/2009 - 22:14 | Informe spam
hola, Daniel !

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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida