Una para la araña (Lease dificil de resolver)

13/04/2004 - 18:22 por Carlos Durán Urenda | Informe spam
Hola Grupo

Hace poco me encontre con el siguiente problema

Me encuentro en Mexico, donde el formato de mondeda debe ser $9,999.99
Es decir, el separador de miles es la coma y el separador de decimales el
punto

Tengo un Userform, en el cual se captura el tipo de cambio (11.5910 por
ejemplo) en un textbox, el cual se encuentra vinculado a una celda en la
hoja de calculo, solo que al hacer la captura, almacena un valor diferente
al capturado

captura 11.1818 valor almacenado en la
celda 111,818.00

ya he verificado el panel de control, la configuracion regional, y en Excel
ya he verificado las opciones de Internacional, sin embargo el problema
persiste, aun, capturando el valor directamente en la celda o escribiendo el
valor en tora celda y haciendo un pegado especial, la celda presenta este
extraño comportamiento

Ya lo he resuelto, quitando el vinculo del textbox a la celda, entonces si
puedo escribir el valor normalmente, y lo que he hecho con la captura del
textbox es copiarla mediante codigo a la celda de destino


alguien puede explicarme el porque de este comportamiento?

Gracias

Carlos Durán
 

Leer las respuestas

#1 Héctor Miguel
14/04/2004 - 02:39 | Informe spam
hola, Carlos

... separador de miles es la coma y el separador de decimales el punto.
... Userform .. se captura el tipo de cambio ... en un textbox ... vinculado a una celda [...]
... al hacer la captura, almacena un valor diferente al capturado
... captura: 11.1818, valor almacenado en la celda: 111,818.00
... he verificado el panel de control, la configuracion regional, y en Excel ... las opciones de Internacional,
... el problema persiste, aun capturando ... directamente en la celda o ... un pegado especial,
... la celda presenta este extraño comportamiento
... resuelto, quitando el vinculo del textbox a la celda ... la captura del textbox ... mediante codigo a la celda [...]
alguien puede explicarme el porque de este comportamiento?



1.- el 'comportamiento' NO es 'de la celda'... ES 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'] < => y... 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 SOLO 'se presenta' en las versiones 'non-us-centric' de la aplicacion :((
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 2003 <= :((
4.- haciendo algunas pruebas [afortunadamente, no es 'tan dificil de resolver']... 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

[modifica segun tus necesidades... o continua usando la solucion que comentas] ;)
solo 'toma en cuenta' que la funcion Val() [vba] SOLO 'acepta' EL PUNTO como 'separador de decimales' ;)
saludos,
hector.

Preguntas similares