numero decimal en formulario

05/04/2005 - 23:27 por fredy | Informe spam
hola grupo, tengo un problema: resulta que tengo un formulario el cual toma
datos desde excel el problema es que tengo por ejemplo en la celda a1 25.8
cuado lo subo al formulario queda 25,8 luego como es un formulario de edicion
cuando este 25,8 entra a la celda a1 de nuevo ya no es un numero que puedo
hacer; para subir el nuemro al formulario utilizo:
val1=sheets("hoja1").cells(1,1)

muchas gracias
 

Leer las respuestas

#1 Héctor Miguel
05/04/2005 - 23:54 | Informe spam
hola [de nuevo], fredy !

... un formulario... toma datos... por ejemplo en la celda a1 25.8... cuado lo subo al formulario queda 25,8
... como es un formulario de edicion cuando este 25,8 entra a la celda a1 de nuevo ya no es un numero
... para subir el numero al formulario utilizo: val1=sheets("hoja1").cells(1,1)



espero que lo siguiente te sea de utilidad ;)
saludos,
hector.

1.- es un comportamiento 'normal' [???] del textbox [cuando esta 'ligado' a una celda]
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']
[dicho sea 'de paso'] tambien 'le desaparece' el formato a la celda y 'le aplica' uno 'numerico' con 0 decimales :(
3.- [al parecer] es un 'bug-no-atendido', que 'se presenta' [solo] 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 casos de 'valores' ligados a celdas] 'pareciera asumir' que toda version 'non-us-centric' usa la coma en las decimales :\
-> viene 'presentandose' desde la version '97 hasta la version 2003 <-
4.- haciendo algunas pruebas ... lo siguiente 'funciona de maravilla'...
-> QUITA el vinculo de/a la celda para que no 'tome de ahi' algun valor [separando las decimales por comas] y...
en el modulo de codigo del formulario ==Private Sub TextBox1_Change()
Range("a1") = Val(Me.TextBox1)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Range("a1").NumberFormat = "0.0000"
End Sub
-> solo 'toma en cuenta' que la funcion Val() [vba] SOLO 'acepta' EL PUNTO como 'separador de decimales' <-

Preguntas similares