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]