Devo esportare una riga di dati da un foglio calc ad un altro. (b5:g5)
Faccio selezionare e copiare le celle che mi interessano, ma quando mi si apre il secondo file per la copia Calc mi chiede se voglio sovrascrivere le celle esistenti.
Chiaramente le "nuove" celle devono essere copiate nella riga sottostante.
Chi riesce a darmi qualche dritta? E dirmi dove sbaglio?
Grazie a tutti in anticipo!
Qui sotto la macro.
Codice: Seleziona tutto
Sub rangecopy
Dim oDocA As Object, oDocB As Object, oSheetA As Object, Dummy(), oRangeA as object, targetcell as object
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oDocA = ThisComponent
oFrameA = oDocA.CurrentController.Frame
oSheetA = oDocA.getSheets.getByIndex(0)
LastRow = LastRow_InColumn(1, oSheetA)
oRangeA = oSheetA.getCellRangeByName("b5:g5")
oDocA.CurrentController.Select(oRangeA)
oDispatcher.executeDispatch(oFrameA, ".uno:Copy", "", 0, Dummy())
oDocB = StarDesktop.loadComponentFromURL ("file :\pippo.ods", "_blank",0, Dummy() )
oSheetB = oDocB.getSheets.getByIndex(0)
LastRow = LastRow_InColumn(0, oSheetB)
targetcell= oSheetB.getCellByPosition(1, LastRow)
oDocB.CurrentController.Select(targetcell)
oFrameB = oDocB.CurrentController.Frame
oDispatcher.executeDispatch(oFrameB, ".uno:Paste", "", 0, Dummy())
oDocB.Store
oDocB.close(true)
End Sub
Function LastRow_InColumn (ColumnIndex as long,Sheet as object) as long
r=60
do while Sheet.getCellByPosition(ColumnIndex,r).string = ""
r = r - 1
loop
LastRow_InColumn = r + 1
End Function