[RESUELTO]Duda con una macro y setValue

Discute sobre la aplicación de hojas de cálculo

[RESUELTO]Duda con una macro y setValue

Notapor raxell » Sab Feb 16, 2019 8:27 pm

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   Expandir vistaContraer vista
   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
raxell
 
Mensajes: 35
Registrado: Dom Dic 16, 2012 4:35 pm

Re: Duda con una macro y setValue

Notapor PepeOooSevilla » Sab Feb 16, 2019 9:53 pm

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 mauricio 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) 7 veces
LibreOffice 6.1.5 en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1038
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Duda con una macro y setValue

Notapor raxell » Dom Feb 17, 2019 12:31 pm

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
raxell
 
Mensajes: 35
Registrado: Dom Dic 16, 2012 4:35 pm

Re: Duda con una macro y setValue

Notapor PepeOooSevilla » Dom Feb 17, 2019 8:55 pm

Hola.

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

Saludos cordiales.
LibreOffice 6.1.5 en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1038
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 3 invitados