Questa soluzione mi funziona per aggiungere dopo l'ultimo foglio il
nuovo secondo il modello (che in realtà è un foglio che si chiama
MODELLO). I fogli dati nel mio caso si chiamano C1, C2,....,Cn.

Ho creato un bottone e chiamo la sub CopySpreadsheet.

Ora mi resta il problema di aggiungere una riga nel foglio dei totali
che però dovrebbe venir aggiornata dalla compilazione o dalla modifica
del foglio Cn cui dovrebbe far riferimento. Per semplicità ho spostato i
totali all'inizio della tabella in modo da poter aggiungere sempre una
riga alla fine... ma su questo ancora non ho trovato soluzione.

Sub CopySpreadsheet
   Dim n   
   Dim sheetName As String
   firstDoc = ThisComponent
   selectSheetByName(firstDoc, "MODELLO")
   dispatchURL(firstDoc,".uno:SelectAll")
   dispatchURL(firstDoc,".uno:Copy")
   n = firstDoc.getSheets().Count
   sheetName = "C"&CStr(n-7)
   firstDoc.getSheets().insertNewByName(sheetName,n)
   selectSheetByName(firstDoc, sheetName)
   dispatchURL(firstDoc,".uno:Paste")
End Sub

Sub selectSheetByName(document, sheetName)
  
document.getCurrentController.select(document.getSheets().getByName(sheetName))
End Sub

Sub dispatchURL(document, aURL)
   Dim noProps()
   Dim URL As New com.sun.star.util.URL
   frame = document.getCurrentController().getFrame()
   URL.Complete = aURL
   transf = createUnoService("com.sun.star.util.URLTransformer")
   transf.parseStrict(URL)
   disp = frame.queryDispatch(URL, "",
com.sun.star.frame.FrameSearchFlag.SELF OR
com.sun.star.frame.FrameSearchFlag.CHILDREN)
   disp.dispatch(URL, noProps())
End Sub



Il 12/10/2010 10.40, M. Manca ha scritto:
> Ciao a tutti,
> normalmente uso calc senza utilizzare macro o altri linguaggi di
> scripting, ora però ho la necessità di fare una cosa, probabilmente
> molto semplice ma per me non lo è, e più precisamente: un bottone che
> nel documento calc crei un nuovo foglio di nome C1 se è il primo, C2....
> Cx e così via ed il contenuto del foglio deve essere la copia brutale
> del foglio MODELLO. Inoltre nel foglio TOTALI dovrebbe aggiungere una
> riga (stesso formato delle righe precedenti contenute nello stesso
> foglio TOTALI) con il nome del foglio aggiunto nella riga nuova ad una
> colonna specifica (es. se il foglio aggiunto si chiama C4 in A6 ci sarà
> scritto C4).
> Non vi chiedo di scrivere la soluzione per me ma di indirizzarmi in
> qualche modo per cercare argomenti di studio per arrivare alla soluzione.
>
>   
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]

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

Rispondere a