Seite 2 von 2

Re: letzte zeile in spalte ?

Verfasst: Do, 11.12.2008 21:18
von Karolus
Hallo
Welche Zellle/Zeile hättest du den gerne:
Steffn_wecheLetzteZeile.ods
(8.47 KiB) 151-mal heruntergeladen
[ ]rot
[ ]grün
[ ]blau
zutreffendes bitte ankreuzen.
Gruß Karo

Re: letzte zeile in spalte ?

Verfasst: Do, 11.12.2008 21:21
von steffn
Die Antwort weiß ich, das ist einfach!
[ ]rot
[XXXX]grün Lieblingsfarbe! :mrgreen:
[ ]blau

Re: letzte zeile in spalte ?

Verfasst: Do, 11.12.2008 21:47
von Karolus
Hallo
Ok, langsam kommen wir wieder zum Thema:

Code: Alles auswählen

...
ocursor = osheet.createCursorbyRange(osheet.getcellrangebyname("C5"))
ocursor.gotoEnd
'möchtest du jetzt den Index der nächsten freien Zeile unterhalb ?
ifreiZeile = ocursor.getRangeAddress.endRow +1
msgbox "der Index der nächsten freien Zeile ist " & ifreiZeile
....
Nachtrag:
Statt C5 musst du ggf. eine Addresse innerhalb deines geschlossenen Bereich angeben !
Gruß Karo

Re: letzte zeile in spalte ?

Verfasst: Do, 11.12.2008 23:21
von steffn
Mit der Zeit fällt einem so einiges ein, was man in den ersten Beitrag so alles hätte reinschreiben können
...

Mittlerweile denke ich, dass es "jeweils letzte Zelle mit formula von verschiedenen Spalten" genauer beschreibt und mir (zumindest jetzt lol) keine missverständlichen Teile mehr auffallen (aber das dachte ich ja auch bei Themaerstellung ...)

Oder anders: Wie kann ich in Basic den gleichen Effekt erzielen, wie wenn man die letzte Zeile in einer Calc-Datei markiert und '.uno:GoUpToStartOfData' im dispatcher ausführt?

Re: letzte zeile in spalte ?

Verfasst: Fr, 12.12.2008 06:54
von komma4
steffn hat geschrieben:"jeweils letzte Zelle mit formula von verschiedenen Spalten"

Code: Alles auswählen

Sub Main
msgbox " usedRange" 
usedArea
End Sub


REM Danad Posted: Sat Feb 19, 2005 3:19 am
REM http://www.oooforum.org/forum/viewtopic.phtml?t=17142

Function usedArea()
   oDoc = thisComponent
   oPlan = oDoc.getSheets().getByIndex(0)
   oCursor = oPlan.createCursor()
   oCursor.gotoStartOfUsedArea(False)
   oCursor.gotoEndOfUsedArea(True)
   aAdd = oCursor.getRangeAddress()

 '  print aAdd.StartRow; aAdd.StartColumn; aAdd.EndRow; aAdd.EndColumn
usedArea = aAdd.StartRow & " " & aAdd.StartColumn & " " &  aAdd.EndRow & " " &  aAdd.EndColumn
end Function 
usedArea() gibt Dir hier die Indices (!) des Starts und Ende des Tabellenblattes mit Index 0 (i.d.R.: "Tabelle1") zurück.

Hilft Dir das?

Re: letzte zeile in spalte ?

Verfasst: So, 14.12.2008 20:27
von steffn
Nein. Und ehrlich gesagt wundert es mich sehr, dass Ihr mir jeder zweimal den Tipp gebt, die letzte Zeile eines Bereichs zu benutzen, welcher aus mehreren Spalten bestehen kann, obwohl ich der Meinung bin, dass ich mehrmals nach der einer Spalte gefragt habe. Mit 'gotoend' und 'gotoendofusedarea' funktioniert das doch nur mit freiliegenden Spalten oder mit der, die die optisch am weitesten unten benutzte Zelle hat, beides weit entfernt davon, wenn man in einer Spalte unterhalb der benutzten Zellen 'Steuerung' und 'Pfeil-nach-oben' drückt.

Als ich mir meinen Beitrag mit 'Formula' durchgelesen habe, kam ich auf die Idee danach zu suchen. Das führte mich nach einer ganzen Weile zu 'Flags'. Das führte mich wiederum zu 'querycontentcells' und das gibt einem ganz hübsche 'rangeaddresses'.

Code: Alles auswählen

	BLATT = thiscomponent.currentcontroller.getactivesheet
	SPALTE = BLATT.columns(0)
	const FLAGS as long = 31
	ZELLEN = SPALTE.querycontentcells( FLAGS )
	BEREICHE = ubound( ZELLEN.rangeaddresses)
	if BEREICHE > -1 then
		ZEILELETZTE = ZELLEN.rangeaddresses( BEREICHE ).endrow
		print "ZEILELETZTE: " & cstr( ZEILELETZTE ) & " ||| "
	else
		print "keine FLAGS-31-zellen ||| "
	endif
Danke, dass Ihr mir helfen wolltet.
Ich kann aber immer noch nicht verstehen, weswegen derart intensiv meine angebliche Art zu Suchen kritisiert wurde, obwohl dies offensichtlich das erste Auftauchen in diesem Forum war. Ich habe von der sinnlosen Diskussion übrigens derart schlechte Laune bekommen, dass selbst jetzt die Freude über die vielleicht optimale Lösung komischerweise nicht überwiegt. Suchen nach "rangeaddresses" oder "querycontentcells" ergibt jetzt übrigens in allen Unterforen ohne irgendeine Veränderung der Sucheinstellungen in der erweiterten Suche einen Treffer.