Como dar formato numérico a un texbox en una userform

Estimado experto te escribo para hacerte una pregunta sobre macros en excel, la cual, es la siguiente:

Tengo un texbox en una userform que necesito darle un formato numérico y que este mismo formato lo adquiera la celda a la cual lo tengo ligado en un libro de excel ya que cuando pongo un número en el texbox y este aparece en la celda esta toma el formato de texto y eso me afecta ya que lo requiero como número para realizar operaciones aritméticas.

1 respuesta

Respuesta
1

No puedo dar mucho detalle pues no conozco el que has introducido a tu TextBox... pero asumo que habrán instrucción que digan algo como

Cells(4,5) = Texbox1.value

o

Range("A5") = Texbox1.value

Lo que tienes que hacer es colocarle la funcion VAL como por ejemplo para el primer caso...

Cells(4,5) = Val(Texbox1.value)

Experto:

Primero que nada agradecerte la respuesta y ofrecerte una disculpa por la tardanza de mi respuesta a la misma, sobre de ella te comento que en mi código ya tengo la opción que me diste Range("A5")= Texbox2.value y no me funciona, es decir aunque yo ponga un número en mi texbox ya cuando me aparece en la celda "A5" le sigue dando el formato de texto, te muestro el código que le tengo asignado al Texbox para que lo revises, saludos y muchas gracias por tu ayuda.

Private Sub TextBox2_Change()
Sheets("Tabla de cálculo").Activate
Range("F15") = Val(TextBox2.Value)
ActiveCell.FormulaR1C1 = TextBox2
TextBox1 = Format(TextBox2.Value, "###,###")
End Sub

Los TEXTbox son cuadros de TEXTo... no tiene sentido que sean números pues aunque escribas cifras, estas se convierten a letras con dígitos numéricos...

Lo que si puedes hacer es escribir el valor en la celda como valor...

De lo que veo de tu macro... te falta una función VAL... para quen en la celda activa tambien escriba un numero

Ahora... aunque en los Textbox tengas texto no implica que no puedas grabar el equivalente en numeros en las celdas que desees.

En tu macro se graba un numero en F15

Pero en la celda activa no... esto lo corriges con el VAL que te muestro en el codigo siguiente..

Private Sub TextBox2_Change()
Sheets("Tabla de cálculo").Activate
Range("F15") = Val(TextBox2.Value)
ActiveCell.FormulaR1C1 = VAL(TextBox2) ' Esto hará que en la celda activa SI se escriba un numero

TextBox1 = Format(TextBox2.Value, "###,###") ' Esto esta convirtiendo en texto el valor de ' textobox2... y luego la asigna al textbox1 que de por si solo puede guardar valores de texto.

' Si deseas que alguna celda (de repente la activecell tenga tambien el formato ###,### debes programar este formato en Excel con la grabadora de macros.

End Sub

Experto:

Gracias por contestarme de nuevo, parece que si me sirvió tu sugerencia, ahora solo tengo el problema de que cuando quiero poner el número en el texbox me forzá a hacerlo separado con comas por ejemplo 23,4 y yo requiero que sea con punto 23.4 que podré hacer al respecto.

Gracias de antemano.

Normalmente el formato "," o "." depende de Windows... es decir de la configuración de la PC.. no de Excel...

No se en que formato esta tu Windows, pero tu Excel debería seguir el mismo patrón... y los complementos ActiveX que son los que se instalan para tener disponibilidad sobre los TextBox también...

Primero prueba como esta la configuración de tu Windows... usa puntos o comas decimales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas