textbox formato numerico

14/07/2004 - 03:05 por ferbegom2003 | Informe spam
Hola Grupo

el caso es :
Tengo un userform en el que existen varios textbox en donde se
capturan valores numericos, al ejecutar un comando que me almacena la
informacion dentro de una hoja del libro, los valores que contienene
parte decimal los guarda cmo texto, probre con la funcion
cdec(textbox.value), pero siguio presentando el mismo problema, luego
se le cambio la configuracion dentro del panel de control de los
decimales y los miles entre el punto y la coma, y funcionó, pero por
razones que algun software o usuario desea o necesita cambiar la
configuracion, este problema volverá a presentarse.

la pregunta es:
1-como podría por medio de código, validar o mantener el valor con
sus decimales sin que la configuración del equipo interfiera
independiente del cambio que se le efectuara en la configuracion de
los decimales y los miles?

2-como impedir que al usar la combinación de teclas control + break o
la combinación control + bloqDespl permitan la interrupción en la
ejecución de código.

Agradezco su colaboración frente a estas dos preguntas

Cordial saludo

Fernando
 

Leer las respuestas

#1 Héctor Miguel
14/07/2004 - 10:13 | Informe spam
hola, fernando !

... userform ... varios textbox ... se capturan valores numericos
... comando que me almacena la informacion dentro de una hoja del libro
... los valores que contienene parte decimal los guarda como texto
... se le cambio la configuracion [panel de control] de los decimales y los miles entre el punto y la coma, y funciono
... por razones que ... desea o necesita cambiar la configuracion, este problema volvera a presentarse.
1.- como ... por medio de codigo, validar o mantener el valor con sus decimales sin que la configuracion del equipo interfiera
2.- como impedir ... interrupcion en la ejecucion de codigo.



espero que algo de lo siguiente 'apunte' en la direccion 'correcta' ;)
saludos,
hector.

por lo 'tocante' al formato 'equivocado' del[los] textbox/es cuando hay decimales...
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']
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 excel
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 ... 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' <
por lo 'tocante' a impedir ... interrupcion en la ejecucion de codigo...
si [solamente] necesitas 'impedir' que el usuario 'se interponga' con la ejecucion de la macro...
revisa en la ayuda de vba las siguientes 'alternativas' [son del objeto Application]...
-> Interactive
para 'inhabilitar' el teclado [y el raton] para el usuario, 'se puede usar' => Application.Interactive = False < Pros: el usuario NO PODRA 'usar' el teclado [ni el raton]... ¡ PARA NADA !!!
Cons: TAMPOCO 'cambiar de celda activa', NI 'cerrar' la aplicacion [...] ¡ NI NADA !!!
TAMPOCO la aplicacion ['por si misma'] 'regresa' [a True] la 'interactividad' con el usuario <== OJO
-> EnableCancelKey
revisa en la ayuda los ejemplos y comentarios acerca de 'cuidados especiales' en su uso.

Preguntas similares