Jump to content

Macros/Calc/ba002

From The Document Foundation Wiki



Description

Copy row data from sheet to other. Copy data in next free cell.

Basic code

Sub Main()
	SHEET_SOURCE = "Source"
	RANGE_SOURCE = "A2:E2"
	SHEET_TARGET = "Target"
	CELL_TARGET = "A1"
	
	doc = ThisComponent
	source = doc.Sheets.getByName(SHEET_SOURCE)
	target = doc.Sheets.getByName(SHEET_TARGET)
	
	range = source.getCellRangeByName(RANGE_SOURCE)
	cell = target.getCellRangeByName(CELL_TARGET)
	next_free_cell = get_next_free_cell(cell)
	
	source.copyRange(next_free_cell.CellAddress, range.RangeAddress)
	
	'If you clean source then, 31 clean only data, not format
	range.clearContents(31)
	
End Sub


Function get_next_free_cell(cell)
	cursor = cell.SpreadSheet.createCursorByRange(cell)
	cursor.gotoEnd()
	col = cell.CellAddress.Column
	row = cursor.RangeAddress.EndRow + 1
	get_next_free_cell = cell.SpreadSheet.getCellByPosition(col, row)
End Function