Il 20/03/2012 22:44, nicola ha scritto:
> Finalmente ho potuto provare la  macro modificata x eliminare le celle
> vuote, è perfetta!
> ora ho un'altra richiesta se è possibile, la macro copia tutti i dati
> contenuti nelle celle indicate e li incolla tali e quali
> ma in certe celle ci sono delle formule che copiate in un'altro foglio
> non hanno senso.
> si può inserire nella macro un opzione per copiare solo testo e
> numeri(il risultato delle formule) senza le formule?
> grazie Nicola

Be', se non ti interessano formule e formattazione la macro è ancora più
semplice... Basta usare il DataArray del range di origine e copiarlo in
quello di destinazione.
Per comodità ti posto tutta la macro modificata:

Sub CopyValues
Dim aFileProp(0) As New com.sun.star.beans.PropertyValue
        oDoc = ThisComponent
        oSheet = oDoc.Sheets.getByName("Foglio1")
        oCopyRange = oSheet.getCellRangeByName("A13:I44")
        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
        oPasteRange = oSheet.getCellRangeByPosition(0, nEndRow, 8, nEndRow +
(44 - 13)) '0=A 8=I
        oPasteRange.DataArray = oCopyRange.DataArray
        For i = nEndRow + (44 - 13) To nEndRow Step -1
                If oSheet.getCellByPosition(0, i).Type =
com.sun.star.table.CellContentType.EMPTY Then
                        oSheet.getRows.removeByIndex(i, 1)
                End If
        Next i
        oDoc.store()
        oDoc.close(false)
End Sub

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

Rispondere a