Problema con el valor de una Variable

28/06/2004 - 14:18 por Henry Sanchez | Informe spam
Hola Grupo,
La configuracion de mi equipo hace que el punto decimal
(.)se reemplace por una coma (,)y el separador de
argumentos entonces es punto y coma (;).
Esto que no deberia tener trascendencia crea un conflicto
en uno de mis modulos de codigo.
Me explico:
En la celda A1 tengo el valor 1.17 (1,17) se ve en la
pantalla.

Sub MiProcedimiento
Dim MiVariable As Variant

MiVariable=Range("A1").Value
Range.("C5").FormulaR1C1 = "=ROUND(" & MiVariable & "*RC
[-1],0)"
End Sub

Esta ultima asignacion a la celda C5 me produce un error,
que al tratar de depurarlo deduzco que la cadena asignada
a la formula es:
"=ROUND(1,17*RC[-1],0)" cuando lo logico seria
"=ROUND(1.17*RC[-1],0)"

Se le ocurre a alguien como podria salvar este asunto?

Saludos,

Henry

Preguntas similare

Leer las respuestas

#1 Anonimo
28/06/2004 - 17:43 | Informe spam
Tienes que entrar en el Panel de control de windows y, en
configuración regional, poner España (suponiendo que este
sea tu país).





Hola Grupo,
La configuracion de mi equipo hace que el punto decimal
(.)se reemplace por una coma (,)y el separador de
argumentos entonces es punto y coma (;).
Esto que no deberia tener trascendencia crea un conflicto
en uno de mis modulos de codigo.
Me explico:
En la celda A1 tengo el valor 1.17 (1,17) se ve en la
pantalla.

Sub MiProcedimiento
Dim MiVariable As Variant

MiVariable=Range("A1").Value
Range.("C5").FormulaR1C1 = "=ROUND(" & MiVariable & "*RC
[-1],0)"
End Sub

Esta ultima asignacion a la celda C5 me produce un error,
que al tratar de depurarlo deduzco que la cadena asignada
a la formula es:
"=ROUND(1,17*RC[-1],0)" cuando lo logico seria
"=ROUND(1.17*RC[-1],0)"

Se le ocurre a alguien como podria salvar este asunto?

Saludos,

Henry


.

Respuesta Responder a este mensaje
#2 Henry Sanchez
28/06/2004 - 21:32 | Informe spam
Gracias Anonymous,
Pero no es eso lo que busco, yo no quiero cambiar la
configuracion de mi equipo, ya que eso no solucionaria
nada por que habria que cambiar la configuracion de los
equipos de todos mis clientes.
La idea es que el codigo funcione en forma adecuada, ya
que el valor que toma la variable deberia ser
interpretado como un numero.

Saludos,

Henry

Tienes que entrar en el Panel de control de windows y, en
configuración regional, poner España (suponiendo que este
sea tu país).





Hola Grupo,
La configuracion de mi equipo hace que el punto decimal
(.)se reemplace por una coma (,)y el separador de
argumentos entonces es punto y coma (;).
Esto que no deberia tener trascendencia crea un




conflicto
en uno de mis modulos de codigo.
Me explico:
En la celda A1 tengo el valor 1.17 (1,17) se ve en la
pantalla.

Sub MiProcedimiento
Dim MiVariable As Variant

MiVariable=Range("A1").Value
Range.("C5").FormulaR1C1 = "=ROUND(" & MiVariable




& "*RC
[-1],0)"
End Sub

Esta ultima asignacion a la celda C5 me produce un




error,
que al tratar de depurarlo deduzco que la cadena




asignada
a la formula es:
"=ROUND(1,17*RC[-1],0)" cuando lo logico seria
"=ROUND(1.17*RC[-1],0)"

Se le ocurre a alguien como podria salvar este asunto?

Saludos,

Henry


.



.

Respuesta Responder a este mensaje
#3 Héctor Miguel
28/06/2004 - 23:11 | Informe spam
hola, Henry !

Henry Sanchez escribio en el mensaje
... configuracion de mi equipo ... punto decimal ... coma (,) ... separador de argumentos ... punto y coma (;)
... crea un conflicto en uno de mis modulos de codigo ... A1 tengo el valor 1.17 (1,17) se ve en la pantalla.
Sub MiProcedimiento
Dim MiVariable As Variant
MiVariable=Range("A1").Value
Range.("C5").FormulaR1C1 = "=ROUND(" & MiVariable "*RC[-1],0)"
End Sub
... la celda C5 me produce un error que ... deduzco que la cadena asignada a la formula es:
"=ROUND(1,17*RC[-1],0)" cuando lo logico seria
"=ROUND(1.17*RC[-1],0)"

anonymous escribio en el mensaje
... entrar en el Panel de control ... y en configuración regional, poner [...]

Henry Sanchez escribio en el mensaje
... habria que cambiar la configuracion de los equipos de todos mis clientes.
... que el codigo funcione ... ya que el valor que toma la variable deberia ser interpretado como un numero.







[hasta donde se] hay un [pequeño] 'inconveniente' con las configuraciones regionales [separadores] ...
=>si 'se trata de'<= asignar a variables/argumentos_de_funciones, los valores [numericos] 'tomados' de celdas ...
=>cuando<= la configuracion 'actual' utiliza la coma ',' [o distinto de punto] como 'separador' de =>decimales<aunque la ayuda 'menciona' que la funcion CCur(MiVariable) 'debiera funcionar' [con distintas 'configuraciones']
=>NO 'funciona'<= cuando se trata de asignar a variables/argumentos... valores de celdas.. etc. :((

1.- podrias 'depositar' [directamente] un resultado [p.e.]
Range("c5") = [Application.]Round(Range("a1") * Range("c5").Offset(, -1), 0)

2.- 'tendrias que' sustituir la coma por el punto =>antes<= de su utilizacion 'correcta' [p.e.]
MiVariable = Application.Substitute(Range("a1"), ",", ".")
Range("c5").FormulaR1C1 = "=Round(" & MiVariable & "*RC[-1],0)"

3.- podrias 'obligar' a que excel 'evalue' [el valor 'real' de] la variable como una cadena de texto [p.e.]
MiVariable = Range("a1")
Range("c5").FormulaR1C1 = "=Round(""" & MiVariable & """*RC[-1],0)"

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Henry Sanchez
29/06/2004 - 00:18 | Informe spam
Muchas gracias Hector,
Ya perdi la cuenta de cuantas te debo.

Cualquiera de las tres soluciones debe servir, voy a
evaluar cual es la que se adapta mas a mi codigo.

Saludos,

Henry
hola, Henry !

Henry Sanchez escribio en el mensaje
... configuracion de mi equipo ... punto decimal ...




coma (,) ... separador de argumentos ... punto y coma (;)
... crea un conflicto en uno de mis modulos de




codigo ... A1 tengo el valor 1.17 (1,17) se ve en la
pantalla.
Sub MiProcedimiento
Dim MiVariable As Variant
MiVariable=Range("A1").Value
Range.("C5").FormulaR1C1 = "=ROUND(" & MiVariable "*RC




[-1],0)"
End Sub
... la celda C5 me produce un error que ... deduzco




que la cadena asignada a la formula es:
"=ROUND(1,17*RC[-1],0)" cuando lo logico seria
"=ROUND(1.17*RC[-1],0)"



anonymous escribio en el mensaje
... entrar en el Panel de control ... y en






configuración regional, poner [...]

Henry Sanchez escribio en el mensaje
... habria que cambiar la configuracion de los








equipos de todos mis clientes.
... que el codigo funcione ... ya que el valor que








toma la variable deberia ser interpretado como un numero.

[hasta donde se] hay un [pequeño] 'inconveniente' con


las configuraciones regionales [separadores] ...
=>si 'se trata de'<= asignar a


variables/argumentos_de_funciones, los valores
[numericos] 'tomados' de celdas ...
=>cuando<= la configuracion 'actual' utiliza la coma ','


[o distinto de punto] como 'separador' de =>decimales<>aunque la ayuda 'menciona' que la funcion CCur
(MiVariable) 'debiera funcionar' [con
distintas 'configuraciones']
=>NO 'funciona'<= cuando se trata de asignar a


variables/argumentos... valores de celdas.. etc. :
((

1.- podrias 'depositar' [directamente] un resultado


[p.e.]
Range("c5") = [Application.]Round(Range("a1") *


Range("c5").Offset(, -1), 0)

2.- 'tendrias que' sustituir la coma por el punto


=>antes<= de su utilizacion 'correcta' [p.e.]
MiVariable = Application.Substitute(Range


("a1"), ",", ".")
Range("c5").FormulaR1C1 = "=Round(" & MiVariable


& "*RC[-1],0)"

3.- podrias 'obligar' a que excel 'evalue' [el


valor 'real' de] la variable como una cadena de texto
[p.e.]
MiVariable = Range("a1")
Range("c5").FormulaR1C1 = "=Round(""" & MiVariable


& """*RC[-1],0)"

¿comentas?
saludos,
hector.

.

Respuesta Responder a este mensaje
#5 Héctor Miguel
29/06/2004 - 09:40 | Informe spam
hola, Henry !

... gracias ...


=> gracias a ti... [por el 'feed-back'] ;)

Ya perdi la cuenta de cuantas te debo.


=> si alguna 'ha servido'...
- 'piensa' un numero...
- dividelo por 3.4116...
- obten la raiz cuadrada de su potencia 3...
- quita el numero que 'pensaste'...
- 'ese' resultado... multiplicalo por cero y...
- 'esas' son las que 'me debes'

saludos [y... perdon por el 'chascarrillo'] :))
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida