** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Puntos por Coma en TextBox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPuntos por Coma en TextBox

 Responder Responder
Autor
Mensaje
Linkbros Ver desplegable
Habitual
Habitual
Avatar

Unido: 01/Marzo/2008
Localización: Colombia
Estado: Sin conexión
Puntos: 79
Enlace directo a este mensaje Tema: Puntos por Coma en TextBox
    Enviado: 27/Octubre/2009 a las 11:21
En el hilo "Formato numericoen TextBox" obtuve la respuesta correcta a mi duda, pero me salto una nueva y es que para que funcione debo usar el separador "," del teclado alfanumerico. cuando deseo usar el "." el teclado numerico no lo acepta como numero ejemplo:

deseo que el resultado sea 5,85
Si digito la coma en el teclado alfanumerico no hay problema.

Si digito la coma en el teclado numerico no lo acepta como numero y lo borra (tengo una restriccion que valida si el valor del textbox es numero)

En resumidas cuentas deseo digitar los separadores decimales con el punto del teclado alfanumerico.

trate con TextBox1 = Replace(TextBox1, ".", ",") pero nada

aqui va mi codigo por si las dudas

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1.Value, "#.##0,00")
TextBox1 = Replace(TextBox1, ".", ",")
If TextBox1.Value = 0 Then
TextBox1.Value = ""
End If
If TextBox1.Value > 100 Then
TextBox1.Value = ""
End If
If Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text) + Val(TextBox4.Text) + Val(TextBox5.Text) > 100 Then
TextBox1.Value = ""
MsgBox "La suma de porcentajes no debe exceder el 100%"
End If
End Sub

Muchas gracias por la colaboracion prestada

Saludos desde cali, Colombia

Linkbros
Arriba
Antoni Ver desplegable
Habitual
Habitual


Unido: 30/Agosto/2009
Localización: Catalunya
Estado: Sin conexión
Puntos: 70
Enlace directo a este mensaje Enviado: 27/Octubre/2009 a las 12:52
Yo utilizo un valor auxiliar:

En lugar de Format y Replace prueba:

Valor = Ccur(TextBox1)
TextBox1 = Formatnumber(Valor)

(El .value es opcional)

A partir de ahí trabajo con Valor.

Valor es una variable definida como Currency

Con esto consigo que en el form el textbox aparezca editado, e interiormente ya tengo lo tengo formateado para trabajar con el.

Además consigo lo que tu pretendes, que es poder utilizar el punto decimal del teclado numérico.

Es recomendable no borrar la información introducida por el usuario cuando se produce un error de depuración, porqué sinó el usuario no puede comprobar donde se ha equivocado.

Que dura es la vida del programador.
Arriba
Linkbros Ver desplegable
Habitual
Habitual
Avatar

Unido: 01/Marzo/2008
Localización: Colombia
Estado: Sin conexión
Puntos: 79
Enlace directo a este mensaje Enviado: 27/Octubre/2009 a las 13:11
Muchas gracias Antoni,

por ahi me encontre esta joyita

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46
KeyAscii = 44
End Select
End Sub

y me esta funcionando muy bien, ya que cuando escribo el "punto" (teclado numerico) me lo cambia por coma y acepta el valor introducido como numerico.

Salvo que halla un error en mi apreciacion y una mejor solucion, se puede cerrar el hilo.

Muchas gracias
Saludos desde cali, Colombia

Linkbros
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable