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.
