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:
[ ]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!

[ ]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.