RESUELTO Automatizar "Buscar valor destino" con macro

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

RESUELTO Automatizar "Buscar valor destino" con macro

Notapor showerdays » Mié Ago 31, 2011 2:16 pm

Hola a todos y gracias de antemano, el tema es el siguiente:

En una hoja de Calc realizo una iteración utilizando la función "Buscar valor destino" y como cambio parámetros para analizar los resultados, necesito automatizar este proceso.

He grabado la macro realizada y el código es el siguiente:


sub iterar()
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:GoalSeekDialog", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:GoalSeek", "", 0, Array())


end sub


Pero no me hace nada, lo único que he hecho es quitar el rem del código del goalseekdialog. De esta forma me muestra el cuadro de diálogo pero sin datos, los cuales tengo que volver a seleccionar.
Y lo que quería era automatizar este proceso puesto que los valores del cuadro de diálogo son siempre los mismo.

Gracias.
Última edición por showerdays el Jue Sep 01, 2011 8:36 am, editado 1 vez en total
open office 3.2
showerdays
 
Mensajes: 42
Registrado: Mié Jul 07, 2010 10:38 am

Re: Automatizar "Buscar valor destino" con macro

Notapor eltete » Mié Ago 31, 2011 5:12 pm

En esta dirección tienes trabajada tu misma pregunta
http://www.oooforum.org/forum/viewtopic.phtml?t=5775

En cualquier caso te adjunto este archivo, con la macro muy ligeramente modificada, para adaptarla, creo yo, mejor a tu pregunta

En A2 está la fórmula (yo he puesto una muy sencilla 1+x²)
En B2 se teclea el objetivo buscado
Y una vez activada la macro (clica sobre la estrella) en C2 aparece el resultado

Si no era esto lo que buscabas ya nos dirás algo
Adjuntos
Objetivo.ods
(10.15 KiB) 310 veces
Win XP SP3 OpenOffice 3.2.1
Avatar de Usuario
eltete
 
Mensajes: 260
Registrado: Lun Oct 25, 2010 8:47 pm
Ubicación: Sant Cugat del Vallés - España

Re: Automatizar "Buscar valor destino" con macro

Notapor showerdays » Jue Sep 01, 2011 8:34 am

Muchas gracias!!!

con el enlace me he aclarado perfectamente ya que lo veía más claro en la programación,

por si alguien lo necesita dejo aquí el código:


sub GoalSeek

dim resultfound as new com.sun.star.sheet.GoalResult '(divergence,result structure)
dim formula_address as new com.sun.star.table.CellAddress '(sheet,column, Row structure)
dim variable_address as new com.sun.star.table.CellAddress
dim targetresult as string 'goal value sought as STRING
oDoc=thiscomponent

'indicamos cual es la ubicación de la celda objetivo
formula_address.sheet = 0 'index values - zero based
formula_address.Column = 11
formula_address.Row=47
' indicamos cual es la ubicación de la celda variable
variable_address.sheet = 0
variable_address.Column = 10
variable_address.Row=26
'indicamos cual es el valor objetivo
targetresult = "0"
' run goalseek
resultfound = oDoc.seekgoal(formula_address,variable_address,targetresult)

'sacamos un msgbox y itroducimos el valor en la celda que deseemos
msgbox resultfound.result

oHoja = ThisComponent.Sheets(0)
Temp_salida = oHoja.getCellRangeByName ("K27")
Temp_salida.value = resultfound.result
end sub
open office 3.2
showerdays
 
Mensajes: 42
Registrado: Mié Jul 07, 2010 10:38 am

Re: RESUELTO Automatizar "Buscar valor destino" con macro

Notapor germansd00 » Lun Oct 08, 2018 6:39 pm

Realmente ha sido tremendamente útil todo lo expuesto. Gracias a Ambos...han sido una grandísima solución.

Saludos.

German
LibreOffice - Versi??n: 5.2.4.2
germansd00
 
Mensajes: 1
Registrado: Lun Oct 08, 2018 11:02 am


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados