[Lugge] Re: Macro con OpenOffice

  • From: Davide Pederzoli <ego@xxxxxxxxxxxxxxxxxx>
  • To: lugge@xxxxxxxxxxxxx
  • Date: Tue, 14 Dec 2004 18:47:53 +0100

Giovanni Caruso ha detto il 13/12/04 3.01:

Davide Pederzoli wrote:

Ciao,
Una soluzione banale puo' essere quella di fare il classico assegnamento ad esempio nella cella Tabella1.A1 scrivi " =Tabella2.A2" che copia il valore della cella di Tabella2.A2 in Tabella1.A1.


Non posso farlo...
Infatti funziona se c'è una corrispondenza 1 a 1 tra le celle che copiate e quelle copianti.

Non mi pare vero visto che ho provato a fare assegnazioni FUNZIONANTI. Francamente mi sembra strano.

L'obbiettivo è di copiare in due righe consecutive lo stesso valore presente in una cella in un altro foglio (o anche nello stesso non è imporŧante).
Facendo un esempio di quello che mi servirebbe nello stesso foglio, nelle celle A1 e A2 deve esserci il valore di B1, nelle celle di A3 e A4 non ci deve essere B2 ma bens' B7 (per esempio). IN a5 - a6 ci deve essere B14 e così via...

Si fa tranquillamente



Un'altra solzione e' associare ad un bottone tutta la procedura di assegnazione scrivendola in Basic.


sub Assegnazione
       'Get this spreadsheet document
       oDoc = ThisComponent
       ' Get the first sheet.
       oSheet = oDoc.getSheets().getByIndex(0)
       ' Get cell C7
       oCell = oSheet.getCellByPosition(2, 6)
       ' Put the formula into the cell.
       oCell.setFormula("=Tabella2.B6")
end sub

Le ultime tre righe vanno poi ricopiate ed aggiustate per tutte le celle che devono essere popolate.
Si puo' ovviamente migliorare l'algoritmo con dei cicli opportuni.
Ma tutto dipende cosa vuoi fare esattamente.
Riesci a chiarire meglio?



Sarebbe perfetto...mi basterebbe che l'istruzione:
> ' Get cell C7
> oCell = oSheet.getCellByPosition(2, 6)
fosse un "offset" relativo ad una cella generica....
Cioè la cella A1 deve puntare alla cella con offset 2,6, la cella a3 deve puntare con offset 2,_5_ (e fin qui no problem perchè è una cella sotto ad A1). Per A3 deve essere necessario che ci sia non 2,6 ma 2,13 e per A4 2,12...e così via...ovviamente sarebbe bello ripeterlo N volte (circa 100)....

Quello non e' un problema, l'offset puo' essere modifcato con un ciclo o un vettore... dalla cella A1 Che rappresenta l'origine (0,0), a partire con CellByPosition si possono raggiungere tutte le celle.

Davide



========----------

Archivio delle e-mail postate in lista http://www.freelists.org/archives/lugge/

Prima di scrivere in m-list per favore leggi il regolamento http://www.lugge.net/index.php?mod=cosa_facciamo/gruppo_di_discussione
Modifica dell'account sulla lista LUGGe http://www.lugge.net/index.php?mod=cosa_facciamo/gruppo_di_discussione#list



Other related posts: