Mi dispiace che non ho tempo di adattarlo al tuo scopo, ma ti do una
macro che ho fatto più o meno allo scopo che serve anche a te:
copiare dati da un documento calc a un altro: naturalmente devi
adattarla al tuo, definendo diversamente i documenti, le celle, ecc.
Sub TrasfDatiTimeWeb
oDesktop = createUnoService("com.sun.star.frame.Desktop") 'sessione
oDocument= oDesktop.CurrentComponent 'documento calc dove incollare
i dati
oSheets = oDocument.sheets 'tabelle del documento
'controlla che il documento sia quello giusto
on error goto GestioneErroreRip
if oDocument.DocumentInfo.Title "TurCalc" then exit sub
On error goto 0
oNamen = oDocument.NamedRanges
'cerca il documento dove copiare i dati
'rileva il file TurCalc_InterDat.ods
oComponents = oDesktop.getComponents()
oDocs = oComponents.createEnumeration()
While oDocs.hasMoreElements
oDoc = oDocs.NextElement
On error resume next
oInfo=oDoc.getDocumentInfo()
if oInfo.KeyWords="InterDat" then
oInterDoc = oDoc
end if
on error goto 0
Wend
oNamenInter = oInterDoc.NamedRanges
oSheetsInter = oInterDoc.sheets
'incolla i dati dalla memoria temporanea di lavoro nel foglio
InterDat
oCella=oNamenInter.getByName("PrimaCella").referredCells
oInterDoc.CurrentController.Select(oCella)
'riporta i dati in TurCalc: copia da InterDat e incolla in TurCal
miaAreaCopia=oNamenInter.getByName("AreaDati").referredCells
miaAreaIncolla=oNamen.getByName("DatiTimeWeb").referredCells
miaAreaIncolla.clearContents(7)
dim aData()
aData = miaAreaCopia.DataArray
miaAreaIncolla.DataArray=aData
'elabora formato dati in modo opportuno
for MyLoopDTW = 0 to 30
sDatoDTW = miaAreaIncolla.GetCellByPosition(2,MyLoopDTW).string
if sDatoDTW"0" then
iLung=len(sDatoDTW)
sNewDatoDTW = ""
for MyLoopDTW2 = 1 to iLung
iChr = asc(mid(sDatoDTW,MyLoopDTW2,1))
if iChr=10 then sNewDatoDTW = sNewDatoDTW & " " else sNewDatoDTW =
sNewDatoDTW & chr(iChr)
next
miaAreaIncolla.GetCellByPosition(2,MyLoopDTW).string = sNewDatoDTW
end if
next
GestioneErroreRip:
End Sub
Antonello
--------nicola wrote--------
Subject: [utenti] copiare dati tra fogli
Date: 08.03.2012 15:04
Ciao, avrei bisognio di un aiuto per questo problema:
> uso un foglio di calc \"fattura.ods\" (sia OO che LB) per fare le mie
> fatture, quando emetto una fattura vorrei salvare, con un pulsante,
> tutti i dati compresi nell'intervallo A13:i44 in un altro file calc
> chiamato \"dati.ods\" nella cartella /home/fatture.
> mi servirebbe una macro che:
> 1 copi i dati nell'intervallo A13:i44
> 2 apra il file dati.ods
> 3 incolli i dati a partire dalla colona A del foglio 1 accodandoli a
> quelli precedenti (es. A1:i1 - A2:i10 ecc.) le righe non sono quasi
> mai uguali ma le colonne si
> 4 salvi il file dati.ods e lo chiuda
> ringrazio chi ha la pazienza e il tempo per aiutarmi.
> Nicola