GRAZIE! era proprio quello che cercavo, sarebbe possibile eliminare le celle vuote nel file "dati"? mi spiego meglio nell'intervallo a13:i44 non vengono sempre scritte tutte le righe e incollando tutto l'intervallo si creano numerosi spazi vuoti, pensavo si potesse incollare i dati sucessivi a partire dalla prima riga effetivamente vuota,comunque posso sempre risolvere manualmente
se passi dalle parti di Cagliari ti offro da bere.
Nicola


--------------------------------------------------
From: "Cesare Spaziani" <[email protected]>
Sent: Monday, March 12, 2012 11:43 AM
To: <[email protected]>
Subject: Re: [utenti] copiare dati tra fogli

Il 09/03/2012 13:35, Cesare Spaziani ha scritto:
Il 08/03/2012 15:03, nicola ha scritto:
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
Prova questo:

Dim aFileProp(0) As New com.sun.star.beans.PropertyValue
Sub Main
    oDoc = ThisComponent
    oSheet = oDoc.Sheets.getByName("Foglio1")
    oRange = oSheet.getCellRangeByName("A13:I44")
    oDoc.CurrentController.Select(oRange)
    oTransferable = oDoc.CurrentController.getTransferable()
    oDoc =
StarDesktop.LoadComponentFromURL(ConvertToURL("/home/fatture/dati.ods"),
"_default", 0, aFileProp())
    oSheet = oDoc.Sheets.getByName("Foglio1")
    oCellCursor = oSheet.createCursor()
    oCellCursor.gotoEndOfUsedArea(False)
    nEndRow = oCellCursor.getRangeAddress().endRow + 1
    oRange = oSheet.getCellRangeByPosition(0, nEndRow, 8, nEndRow +
(44 - 13)) '0=A 8=I
    oDoc.CurrentController.Select(oRange)
    oDoc.CurrentController.insertTransferable(oTransferable)
    oDoc.store()
    oDoc.close(false)
End Sub

Ciao,
Cesare
Ciao, mi sono accorto che il messaggio che ti ho inviato il 9 è stato
scartato dalla ML perché x errore l'ho postato in html.
Se può esserti ancora utile la macro è qui sopra...
Ciao,
Cesare

---------------------------------------------------------------------
Per cancellarsi: [email protected]
Per informazioni: http://www.openoffice.org/it/
Per avviare una nuova discussione: [email protected]
Archivi: http://mail-archives.apache.org/mod_mbox/incubator-ooo-utenti-it



-----
Nessun virus nel messaggio.
Controllato da AVG - www.avg.com
Versione: 2012.0.1913 / Database dei virus: 2114/4865 - Data di rilascio: 11/03/2012


---------------------------------------------------------------------
Per cancellarsi: [email protected]
Per informazioni: http://www.openoffice.org/it/
Per avviare una nuova discussione: [email protected]
Archivi: http://mail-archives.apache.org/mod_mbox/incubator-ooo-utenti-it

Rispondere a