Il problema è:

- data la cella attiva
- copiare l'intera riga
- creare una riga vuota (sopra o sotto)
- incollare la riga copiata
(o qualcosa del genere)


Fabio scriveva:

soluzione: lascia perdere il copia incolla :-)

Qui hai ragione, non è necessario "vedere" niente, e lo schema che io riportato corrisponde solo a ciò che farebbe l'utente lavorando con a manina...
Ma è ottima la soluzione da programmatore che proponi... :-)

la mia risposta prevede che tu sappia la posizione della cella in questione.
Ottieni il range di celle che è l'intera riga
Inserisci una riga vuota dove vuoi i dati
Sheet.insertCells(CellRangeAddress, com.sun.star.sheet.CellInsertMode.DOWN)
Scrivi i dati nel range di celle appena inserito.

C'erano alcuni passaggi che mi sfuggivano... ma avrei risolto così:

Sub copia_riga ' copia una riga e il suo contenuto, spostanto 'l'originale in giù
                                
dim nome as string
Dim oDoc As Object
Dim Sheet As Object
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
Dim CellAddress As New com.sun.star.table.CellAddress
dim oRow as integer
oDoc=thisComponent
oDoc.SupportsService("com.sun.star.sheet.SpreadsheetDocument")
oCelle=oDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
Sheet = oDoc.CurrentController.getActiveSheet
        
CellRangeAddress.StartColumn = 0
CellRangeAddress.StartRow = oRow
CellRangeAddress.EndColumn = 200 'espediente vomitevole...
CellRangeAddress.EndRow = oRow
Sheet.insertCells(CellRangeAddress, com.sun.star.sheet.CellInsertMode.ROWS)' inserisce delle righe vuote
oRow2 = oRow  +1
CellRangeAddress.StartRow = oRow2
CellRangeAddress.EndRow = oRow2
CellAddress.Column = 0
CellAddress.Row = oRow
Sheet.copyRange(CellAddress, CellRangeAddress)
End Sub

Al solito! Zoppica ma funziona---

Grazie Fabio, considererei il problemino risolto, ma se c'è qualche miglioramento o semplificazione da proporre...

bart


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a