A-Lex wrote:
        oDoc = ThisComponent

perchè hai dovuto creare questa variabile se nn la usi?

Infatti è un... refuso ;) Volevo in effetti scrivere oRange = oDoc.GetCurrentSelection ;)


        qui metti "-1" perchè il ciclo parte da 0 e nn da 1, vero?


Sì. E' dovuto al fatto che per ricavare la prima cella in alto a sinistra della selezione con il metodo getCellByPosition bisogna partire da (0,0).

                        sFormula = sFormula & oCell.Formula

        qui alla variabile sFormula assegni se stessa (nel caso nn fosse
        vuota?) a cui "accodo" quelo che trovo il oCell?


L'idea di partenza è che delle celle selezionate soltanto una contiene una formula (altrimenti quale funzione si dovrebbe preferire?) e le altre sono vuote; una sola cella cioè contiene una stringa nella proprietà Formula, mentre in tutte le altre c'è una stringa vuota. Quindi tramite il ciclo vengono concatenate tutte le stringhe vuote (nessun effetto) e l'unica stringa non vuota (la funzione desiderata).

L'alternativa era fare un controllo con IF:
        if oCell.Formula <> "" then
                sFormula = oCell.Formula
        end if
ma questo vuol dire aggiungere una complessità (e il numero di righe di codice).


..e nel caso (come dice Stefano) nella selezione ci fossero più celle
"compilate"?


In effetti se le altre celle non sono vuote i loro valori sono concatenati nella formula finale... con risultati inaspettati.

La macro si può modificare per fare in modo che vengano ignorate le celle che non contengono una formula (la proprietà Value o String della cella corrisponde a Formula). if oCell.Formula <> "" AND oCell.Value <> oCell.Formula AND oCell.String <> oCell.Formula then
                        sFormula = oCell.Formula
        end if

Il solo metodo Merge(True) equivale a rispondere No alla domanda: "Spostare il contenuto delle celle nascoste nella prima cella?"

Ciao,
--
MC

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a