cambia separador decimal

16/07/2005 - 17:19 por hector barajas | Informe spam
Tengo una macro que al cargar un userforms lee informacion de una base de
datos mdb y la carga en un cuadro de lista. Al cargar un numero, que en la
base de datos viene 73.25, en el cuadro de lista (textbox) me aparece 73,25.
Ya cheque la configuracion regional y el separador de decimales es el punto,
por lo cual se me hace raro este problema.

Alguien tiene alguna sujerencia para resolverlo

Gracias de antemano
 

Leer las respuestas

#1 Héctor Miguel
16/07/2005 - 19:50 | Informe spam
hola, 'tocayo' !

... al cargar un userforms lee informacion de una base de datos mdb y la carga en un cuadro de lista
... cargar un numero, que en la base de datos viene 73.25, en el cuadro de lista (textbox) me aparece 73,25.
... la configuracion regional y el separador de decimales es el punto, por lo cual se me hace raro este problema.



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

1.- es un comportamiento 'normal' [???] del textbox [cuando esta 'ligado/vinculado' a una celda]
2.- un textbox [ligado/vinculado] 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 [del 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 :\
[hasta donde se] -> 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