Página 1 de 1

RESUELTO Automatizar "Buscar valor destino" con macro

Publicado: Mié Ago 31, 2011 2:16 pm
por showerdays
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.

Re: Automatizar "Buscar valor destino" con macro

Publicado: Mié Ago 31, 2011 5:12 pm
por eltete
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

Re: Automatizar "Buscar valor destino" con macro

Publicado: Jue Sep 01, 2011 8:34 am
por showerdays
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

Re: RESUELTO Automatizar "Buscar valor destino" con macro

Publicado: Lun Oct 08, 2018 6:39 pm
por germansd00
Realmente ha sido tremendamente útil todo lo expuesto. Gracias a Ambos...han sido una grandísima solución.

Saludos.

German