Problema con Símbolo Decimal en excel...

Hace bastante que vengo con problemas con el símbolo decimal a la hora de querer ingresar datos como moneda, lo que sucede es que la aplicación se ejecuta en dos computadoras, las cuales una tiene el símbolo decimal como la "," y la otra tiene el símbolo el "." debido a que se necesita para otras aplicaciones.

¿

¿Habría una forma de solventar esto?

Porque sino me ingresan mal los números

Respuesta
1

:)

Hola! Marcelo (y fejoal)

Cuando utilizas Format para guardar números en las celdas:

Format(Range(" A3"), "$#,##0.00")

"casi" como que te condenas al fracaso: ¡Tal como lo estás experimentando!

______________________

Si tienes un textbox con un valor como:

textBox = "1,234.56"

Lo más sano (porque VBA SIEMPRE se maneja con "el punto" como separador decimal) es hacer:

Range("A1") = textBox

Y lo que "verás" en la celda estará dado en función del formato que -anticipadamente- le hayas dado a la celda.

______________________

Ahora bien: ¿Qué hacer si el textbox tiene los símbolos invertidos?... Esto es:

textBox = "1.234,56"

En tal caso le agregas dos líneas más. A saber:

punto = InStr(textBox, "."): coma = InStr(textBox, ",")
TextBox = IIf(punto < coma, Replace(textBox, ".", ""), Replace(textBox, ",", ""))

En resumen "la cosa" sería así:

textBox = "1,234.56" ' (o textBox = "1.234,56" )
punto = InStr(textBox, "."): coma = InStr(textBox, ",")
If punto * coma > 0 Then textBox = IIf(punto < coma, Replace(textBox, ".", ""), Replace(textBox, ",", ""))
Range("A1") = Replace(textBox, ",", ".")

Como habrás notado, el símbolo de moneda no tiene ninguna importancia en este esquema general pues se asume que tal símbolo se lo habrás dado a la celda previamente.

¿Te sirve la idea?...

Saludos, Mario R.

:)

.

1 respuesta más de otro experto

Respuesta
1

07/10/16

Hola, Marcelo

Sí, es un garrón.

Afortunadamente, puedes configurar las versiones de MS Excel para que no consideren los símbolos del sistema sino lo que vos le indiques.

En Archivo, Opciones, Avanzadas, te vá a aparece una ventana como esta:

Como ves abajo, sacale la marca de usar separadores del sistema y ponele ahí los que quieras que use.

Desde luego, esto tenés que hacerlo en ambas computadoras.

Espero que te haya ayudado

Un abrazo

Fernando

(Buenos Aires, Argentina)

.

Ya hice eso, pero por alguna razón me toma equivocadamente el símbolo, al pasar a la celda uso "format(range(" A3"), "$#,##0.00")" o algo así, no me acuerdo bien, es el que de obtiene de excelente, y cuando paso 100,3 en la celda queda 1003,00

.

Buenas,

Creo que son dos temas distintos.

Si hacés lo que te sugerí en la respuesta anterior, cada vez que des formato numérico a una celda, usará el separador de decimales que le hayas indicado en aquella pantalla (yo le puse .) y el separador de miles elegido (verás una, allá), independientemente de la configuración regional que tenga cada equipo.

Lo de tu segunda pregunta pueden ser dos cosas:

- Una instrucción de Visual Basic para dar formato a la celda A3 en una macro, cuya sintaxis correcta es:
Range("A3").NumberFormat = "$#,##0.00"

- Colocar una fórmula de texto sobre un número que lo convierta a ese formato. Tal forrmula sería:

=TEXTO(A3; "$#,##0.00")

En ambos casos 100.3 quedará como $100.3

Como ves, "format(range(" A3"), "$#,##0.00")" no coincide con ninguna de las dos opciones que te di.

Pero decime cuál es la que estás necesitando.

Un abrazo

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas