Ciao Antonio,

Il 29/01/2013 23:51, Santoro Antonio ha scritto:
Ciao a tutti,

sto realizzando una macro per calc che ha come obiettivo quello di
sistemare un foglio.

La sistemazione può consistere anche nel popolare delle celle con le
formule.

Sto utilizzando il formulalocal.

Il mio problema è che non riesco a generare una formula con indicate le
celle in forma "relativa"

Es. mi piacerebbe poter fare una fomula del tipo =vlookup(d2,
activities_List, 3, false())

per la cella d2 adesso uso l'espressione wsheet.getcellbyposition(ncol,
nrow).absolutename, ma questa forma mi genera  $Sheet1.$d$2.

Qualcuno di voi sa come posso fare ?

Come spesso accade, ci sono due modi, uno "intelligente" e uno "ignorante" :-)

Il modo "ignorante" è quello di trattare la stringa in modo da eliminare il carattere $ e sostituire il . (punto) con il ! punto esclamativo.

Esempio:

sAbs = oCell.absolutename
sRel = Join(Split(Join(Split(sAbs, "$"), ""), "."), "!")
print sRel


Il modo "intelligente" (che ti consiglio) è quello di usare l'apposito servizio di "traduzione" messo a disposizione dall'API di openoffice.
Esempio:

oCell = wsheet.getcellbyposition(ncol, nrow)
oAddrConv = _
ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
oAddrConv.Address = oCell.CellAddress
print oAddrConv.UserInterfaceRepresentation
print oAddrConv.XLA1Representation


NB: esiste anche un servizio com.sun.star.table.CellRangeAddressConversion
per la conversione degli indirizzi degli intervalli di celle


ciao
Paolo Mantovani





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Rispondere a