decimales

19/09/2006 - 08:24 por Johann R. | Informe spam
tengo lo siguiente:

En Excel, en Visual Basic, pongo lo siguiente

TextBox7 = Val(TextBox6) * Val(TextBox4)

La Operacion Funciona, me sale el resultado, pero me sale el resultado en
Numero entero, y no me muestra los decimales, como puedo hacer??.

Gracias.
 

Leer las respuestas

#1 Héctor Miguel
19/09/2006 - 09:01 | Informe spam
hola, Johann !

En Excel, en Visual Basic, pongo lo siguiente
TextBox7 = Val(TextBox6) * Val(TextBox4)
La Operacion Funciona, me sale el resultado, pero me sale el resultado en Numero entero
y no me muestra los decimales, como puedo hacer??



estoy suponiendo que ent configuracion regional el separador decimal es el punto -?-
y que los textboxes los tienes 'ligados/inculados/...' a celdas en hoja de calculo -?-
[entonces]... espero que algo de lo siguiente 'apunte' en la direccion 'correcta'

si cualquier duda [o informacion adicional]... comentas ?
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']
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 TextBox6_Change()
Range("a1") = Val(Me.TextBox6)
End Sub
Private Sub TextBox6_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