Il 13/03/2012 13:38, nicola ha scritto:
> si la prima colonna รจ sempre utilizzata ma mi devi anche spiegare come
> utilizzare il codice che mi hai inviato, le mie conoscenze di Basic
> sono molto limitate.
> x la birra nessun prooblema, la faccio io ;-)
>
> --------------------------------------------------
> From: "Cesare Spaziani" <[email protected]>
> Sent: Tuesday, March 13, 2012 12:28 PM
> To: <[email protected]>
> Subject: Re: [utenti] copiare dati tra fogli
>
>> Il 12/03/2012 22:42, nicola ha scritto:
>>> 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
Ti posto la macro con le modifiche:
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)
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
In questo modo, dopo aver incollato i dati, la macro fa una scansione
alla rovescia del range selezionato e cerca le celle vuote della colonna
A x cancellare la riga corrispondente.
Se vuoi eseguire il controllo su un'altra colonna, basta che cambi il
primo parametro di getCellByPosition (0=A, 1=B, 2=C, ecc.)
---------------------------------------------------------------------
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