Il giorno 09 novembre 2010 11:26, Paolo Mantovani <[email protected]> ha
scritto:

>
> Ora prendiamo in esame il tuo caso specifico e scriviamo una funzione ad
> hoc:
>
> Function EvalFunc(sFormula As String) As Variant
>  XCell = ThisComponent.Sheets(0).getCellByPosition(0,100)
>  XCell.FormulaLocal = "=" & sFormula
>  EvalFunc = XCell.Value
> End Function
>
> La funzione EvalFunc riceve una stringa e usa una cella arbitraria (XCell)
> per valutare la stringa come se fosse una funzione di Calc.
>
> Questa procedura funziona perfettamente se richiamata dall'ambiente basic,
> ma non funziona se usata come formula di Calc.
>
> Perchč?
> Perchč Calc non ti permette di modificare il contenuto di una cella durante
> un evento "ricalcola" e questo č perfettamente logico perchč la modifica
> della cella causerebbe a sua volta un evento "ricalcola" il quale causerebbe
> una nuova modifica della cella e un nuovo evento "ricalcola" e cosě via, in
> un loop infinito.
>
> Adesso che abbiamo capito la situazione possiamo arguire che se usiamo la
> stessa tecnica della funzione EVALFUNC ma azionando la procedura attraverso
> un pulsante dovremmo ottenere il risultato sperato.
>
> Il problema ora č:
> l'approccio "statico" (ad esempio con un pulsante "calcola" posto in una
> barra personalizzata o direttamente sul foglio elettronico) ti garba o no?
>
>
> ciao
> Paolo M
>

Complimenti per la relazione ! ;-)))

anche se non ho capito tutto nel dettaglio, il concetto è chiaro...

mettere un pulsante calcola sul foglio elettronico va benissimo, il problema
è creare tutto lo script !

grazie.
ciao.

Rispondere a