Bereiche kopieren und neu anordnen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Bereiche kopieren und neu anordnen

Beitrag von turtle47 »

Hallo Uwe,

die Position der ersten leere Zelle einer Spalte bekommst Du mit:

Code: Alles auswählen

	oSheet_Q = ThisComponent.getSheets.getbyName("Import")
	oRange = oSheet_Q.getCellRangeByPosition(0,0,0,66000).queryEmptyCells
	getFirstEmptyRow = Split(oRange.RowDescriptions(0)," ")
	posFirstEmptyCell = getFirstEmptyRow(1)
	print posFirstEmptyCell
Wenn die Zellen Deines zu kopierenden Bereichs durchgängig mit Inhalt versehen sind sollte es Dir weiterhelfen.


Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Bereiche kopieren und neu anordnen

Beitrag von F3K Total »

Hallo Uwe,
Du hast in Deinem Code doch schon die letzte Zeile gefunden, benutzt sie aber nicht? :?

Code: Alles auswählen

oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Zeile = oCellCursor.getRangeAddress.EndRow
Da für mich der Zweck deiner Neuanordnung nicht klar ist, kann ich Dir nicht sagen, wo Du die Zahl "letzte_Zeile" am besten einbauen solltest.
Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Bereiche kopieren und neu anordnen

Beitrag von F3K Total »

Hi Uwe,
habe mal einen Code hier, der das Ergebnis in die zweite Tabelle ".Sheets(1)" schreibt:

Code: Alles auswählen

Sub Sort
dim Zaehler_neue_Zeile as integer

oQuellsheet=thisComponent.sheets(0)
oZielsheet=thisComponent.sheets(1)
oCellCursor = oQuellsheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Zeile = oCellCursor.getRangeAddress.EndRow
letzte_Spalte= oCellCursor.getRangeAddress.EndColumn

Zaehler_neue_Zeile=0
for i=0 to letzte_Spalte step 8
for k=0 to letzte_Zeile
oquellcell=oQuellsheet.getCellbyPosition(i,k)
if oquellcell.NumberFormat=80 then'hier wird das Datum gefunden
for j=0 to 3
otransfercell1=oQuellsheet.getCellbyPosition(i,k+j)
otransfercell2=oQuellsheet.getCellbyPosition(i+4,k+j)
oZielcell1=oZielsheet.getCellbyPosition(j,Zaehler_neue_Zeile)
oZielcell2=oZielsheet.getCellbyPosition(j+4,Zaehler_neue_Zeile)
oZielcell1.NumberFormat=otransfercell1.NumberFormat
oZielcell2.NumberFormat=otransfercell2.NumberFormat
oZielcell1.formula=otransfercell1.formula
oZielcell2.formula=otransfercell2.formula
next j
Zaehler_neue_Zeile=Zaehler_neue_Zeile+1
k=k+4
endif
next k
next i
End Sub
Gruß R
Antworten