[RESUELTO]Duda con una macro y setValue

Discute sobre la aplicación de hojas de cálculo
Responder
raxell
Mensajes: 35
Registrado: Dom Dic 16, 2012 4:35 pm

[RESUELTO]Duda con una macro y setValue

Mensaje por raxell »

Hola a todos, no sé nada de programar y hasta donde he llegado ha sido gracias a la busqueda del foro, así que lo primero, gracias!

Estoy haciendo una macro para copiar de una casilla en una hoja a otra hoja, todo me funciona menos cuando quiero copiar una casilla en la que hay numeros decimales.

Para copiar texto uso "getString" y "setString"
Para copiar numeros enteros me funciona con "getValue" y "setValue"
¿Como lo hago para copiar una casilla que tiene numeros con decimales? con "getValue" y "setValue" me pone 0 como resultado. Si le quito los decimales a la casilla sí me funciona, pero necesito los decimales.

Dejo solo un fragmento del código

Código: Seleccionar todo

	oValor1 = oHojaImportar.getCellByPosition(11, primeraFila )
	oDestinoInfo = oHojaTrading.getCellByPosition(8, valorUFT )
	oDestinoInfo.setValue(oValor1.getValue())
Última edición por raxell el Dom Feb 17, 2019 8:54 pm, editado 1 vez en total.
openoffice 3.4.1
Windows 8
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Duda con una macro y setValue

Mensaje por PepeOooSevilla »

Hola.

GetValue() devuelve un número tipo "Double" (en matemáticas, un número real) en el rango de 1.79769313486232 x 10E308 a 4.94065645841247 x 10E-324.
Apartado 6.4.1 Obteniendo datos del libro de [b][color=#BF0000]mauricio[/color][/b] escribió:... Si lo que deseas es devolver el valor de la celda, se usa el método getValue, si la celda contiene texto, este método te devolverá 0, si tiene un valor, dicho valor, si la celda contiene una formula, dependerá del tipo de resultado de esta formula, si es texto de nuevo te devolverá 0, si es un valor, este valor, si tiene un error de nuevo será 0, si la celda contiene una fecha, te devolverá el número de serie de esta fecha.
Por favor, sube un archivo de ejemplo porque no puedo reproducir tu error. Mira el archivo adjunto.

Saludos cordiales.
Adjuntos
Prueba_GetValue.ods
LibO Calc 6.1.5
(10 KiB) Descargado 268 veces
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
raxell
Mensajes: 35
Registrado: Dom Dic 16, 2012 4:35 pm

Re: Duda con una macro y setValue

Mensaje por raxell »

Es curioso, porque dejando la fórmula como está (que es igual que la que has puesto en tu ejemplo) me devuelve 0 y sin cambiar la formula, simplemente yendo a la casilla y quitándole a mano los decimales sí funciona :crazy:
Por eso pensé que para decimales quizás cambiaba la función, la orden o como se llame (perdón por la ignorancia en el tema).
Ya que me confirmas que es getValue() lo que tengo que usar voy a reescribir el código (que es muy sencillo) no sea que esté cometiendo un error tan tonto que no lo veo.

Muchas gracias, un saludo!

EDIT1: Ya he descubierto cual era el problema :crazy: es para matarme, pero es lo que tiene ser novato en esto. El problema está en el punto y la coma que divide los decimales. Este office en vez de detectar el punto como divisor de los decimales, detecta la coma, por lo que al tener escritos los valores con puntos lo detecta como cadena de texto en vez de números. Ahora buscaré en el foro como cambiar eso en office.

EDIT2: Vale, ya he resuelto mi problema con una función que he encontrado que se llama VALOR.NUMERO. Me convierte el texto de la casilla a número detectando el "." como separador decimal

PD:No sé si este hilo resuelve algo ¿debería borrarlo?

Un saludo! Gracias
openoffice 3.4.1
Windows 8
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Duda con una macro y setValue

Mensaje por PepeOooSevilla »

Hola.

No lo borres, márcalo como [RESUELTO] y listo.

Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Responder