letzte zeile in spalte mit cellflags rangeaddresses queryc..

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

Moderator: Moderatoren

steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

letzte zeile in spalte mit cellflags rangeaddresses queryc..

Beitrag von steffn »

meine erste Lösung für eine benutzte Spalte:

Code: Alles auswählen

SPALTEID = 0 ' beliebig
FLAGS = 23 ' 1+2+4+16 siehe openoffice.org/api/docs/common/ref/com/sun/star/sheet/CellFlags.html
ZELLEN = thiscomponent.currentcontroller.getactivesheet.columns( SPALTEID ).querycontentcells( FLAGS )
ANZAHLBEREICHE = ubound( ZELLEN.rangeaddresses )
if ANZAHLBEREICHE > -1 then
	ZEILELETZTE = ZELLEN.rangeaddresses( ANZAHLBEREICHE ).endrow
	print "ZEILELETZTE: " & cstr( ZEILELETZTE ) & " in SPALTEID " & cstr( SPALTEID ) & " mit FLAGS: " & cstr( FLAGS ) & " ! "
else
	print "keine FLAGS-" & cstr( FLAGS ) & "-zellen in SPALTEID " & cstr( SPALTEID ) & " ! "
endif
meine Lösung für mehrere benutzte Spalten:

Code: Alles auswählen

FLAGS = 0023 ' 1+2+4+16 siehe openoffice.org/api/docs/common/ref/com/sun/star/sheet/CellFlags.html
ZELLEN = thiscomponent.currentcontroller.getactivesheet.querycontentcells( FLAGS )
ANZAHLBEREICHADRESSEN = ubound( ZELLEN.rangeaddresses )
if ANZAHLBEREICHADRESSEN > -1 then
	for BEREICHADRESSEJETZT = 0 to ANZAHLBEREICHADRESSEN
		if ZELLEN.rangeaddresses( BEREICHADRESSEJETZT ).endcolumn > SPALTELETZTE then
			SPALTELETZTE = ZELLEN.rangeaddresses( BEREICHADRESSEJETZT ).endcolumn
		endif
		if ZELLEN.rangeaddresses( BEREICHADRESSEJETZT ).endrow > ZEILELETZTE then
			ZEILELETZTE = ZELLEN.rangeaddresses( BEREICHADRESSEJETZT ).endrow
		endif
	next
	print "SPALTELETZTE: " & cstr( SPALTELETZTE ) & " und ZEILELETZTE: " & cstr( ZEILELETZTE ) & " mit FLAGS: " & cstr( FLAGS ) & " ! "
else
	print "keine FLAGS-" & cstr( FLAGS ) & "-zellen ! "
endif

------------------------------------------------------------------------------------------------------------


hallo forum

ich möchte in meinem code die letzte befüllte zeile einer spalte ermitteln lassen
allerdings fehlen mir dazu - eigentlich wie immer - die werkzeuge

ich habe ausprobiert und mir angesehen, wie es mit dem dispatcher funktioniert, wenn man das als makro aufgenommen hat

Code: Alles auswählen

sub spaltende
	dim document   as object
	dim dispatcher as object
	rem ----------------------------------------------------------------------
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	rem ----------------------------------------------------------------------
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "ToPoint"
	args1(0).Value = "$D$2"
	dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
	rem ----------------------------------------------------------------------
	dim args2(1) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "By"
	args2(0).Value = 1
	args2(1).Name = "Sel"
	args2(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args2())

	ZEILE = thiscomponent.currentselection.celladdress.row

	print "letzte zeile in spalte d = " & cstr(ZEILE + 1)
end sub
aber das betrachte ich als notlösung, weil ich denke, dass es auch anders funktioniert und ich selbstgemacht bevorzuge


wer kann nachhelfen?
Zuletzt geändert von steffn am Mo, 24.11.2014 16:34, insgesamt 3-mal geändert.
oo4.1.2 in winxp pro mit sp3
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: letzte zeile in spalte ?

Beitrag von komma4 »

Nehme die Suchfunktion: das ist eine Standardaufgabe und schon mehrfach hier gefragt und beantwortet worden (auch von mir; der Code von colorRows von verwendet bspw. eine Routine).

Dispatcher-Code aus der Aufzeichnung ist IMHO unbrauchbar.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

wenn man nicht genau liest, was der andere geschrieben hat und man dann anfängt zu schiessen, man aber in der eile nicht genau genug zielt und deswegen verfehlt, der andere dann , weil er beschossen wurde, zurückschiesst und einem mit einem sonntagsschuss über zwei banden von hinten durch das knie schiesst, ist das doch so, als ob man sich selber in das knie schiessen würde

komma4 hat geschrieben:Nehme die Suchfunktion
habe ich
die korrekte frage dazu ist:
wie sucht man denn effizient in diesem forum, wenn eine zutreffende antwort erhalten möchte?
die meiner meinung nach einfachste sah so aus:
openoffice.info/search hat geschrieben:Die Suche ergab 980 Treffer: letzte zeile in spalte
erwartest du von mir, dass ich alle 980 beiträge durchlese, bevor ich ein neues thema abschicke?

komma4 hat geschrieben:das ist eine Standardaufgabe und schon mehrfach hier gefragt und beantwortet worden
das bezweifle ich stark nach meiner nächtlichen suche

komma4 hat geschrieben:Dispatcher-Code aus der Aufzeichnung ist IMHO unbrauchbar.
dass ich den dispatcher auch nicht mag, habe ich geschrieben, gezeigt habe ich ihn aus zwei gründen:
weil ich zeigen wollte, dass ich mich bereits damit beschäftigt habe und wie das, was ich gerne hätte, in etwa funktioniert


ganz ehrlich, ich möchte, dass du auch weiterhin auf meine beiträge antwortest, aber dann bitte nicht so
oo4.1.2 in winxp pro mit sp3
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: letzte zeile in spalte ?

Beitrag von Karolus »

Hallo
Ist dir diese Antwort gut genug ?
viewtopic.php?f=2&t=21247#p91429
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: letzte zeile in spalte ?

Beitrag von balu »

Hallo steffn,
steffn hat geschrieben: ... wie sucht man denn effizient in diesem forum, wenn eine zutreffende antwort erhalten möchte?
Mit der richtigen suche im RICHTIGEN Forum kommt man viel schneller ans Ziel. Deine Suchstrategie solltest Du dir doch noch mal gründlich überlegen, denn es bringt nichts hier in allen Foren zu suchen. Und genau das hast Du nämlich gemacht. Wenn Du aber auf erweiterte Suche gehst, und dort
a.
deine Suchbegriffe eingibst und
b.
nur im OOo Basic und Java Forum suchen läßt,
dann wärst Du höchstwahrscheinlich schon längst am Ziel.

Überleg doch selber einmal von der Logik her, wie oft wohl deine Suchbegriffe "letzte zeile in spalte", einzeln, oder aber auch alle zusammen in den anderen Foren wohl vorkommen können.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

Karolus hat geschrieben:Hallo
Ist dir diese Antwort gut genug ?
hallo karolus
nein, leider nicht :|
lösch doch mal backsheet.getcellrangebyposition(0,0,2,65535), drück dann auf den PushButton und schau dir backupsheet an

balu hat geschrieben:Deine Suchstrategie solltest Du dir doch noch mal gründlich überlegen
hallo balu :mrgreen:
ich wüsste nicht, was ich da überlegen soll
dass ich die fachwörter einfach (noch) nicht kenne ist nichts neues für einen anfänger :(
tu mir doch mal bitte den gefallen und such für mich
ich bin nach dieser total vom thema abweichenden diskussion sehr gespannt, mit welchen einstellungen und suchbegriffen man denn nun hier eine lösung findet

balu hat geschrieben:Überleg doch selber einmal von der Logik her, wie oft wohl deine Suchbegriffe "letzte zeile in spalte", einzeln, oder aber auch alle zusammen in den anderen Foren wohl vorkommen können.
was hat das mit logik zu tun?
das hat eigentlich nichts hiermit zu tun, da es sich nur auf mein beispiel bezieht, welches nur ein rhetorisches mittel war, um das erstellen eines neuen themas zu rechtfertigen



ich habe meinen code mit dispatcher deutlich verändert und es funktioniert bestens
glücklich bin ich damit aber nicht
oo4.1.2 in winxp pro mit sp3
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: letzte zeile in spalte ?

Beitrag von balu »

Hallo steffn,

das überlegen der Suchstrategie hat nichts mit den Fachwörtern zu tun, sondern vielmehr so wie ich es schon sagte, nämlich im richtigem Forum suchen. Denn was wirst Du wohl rausbekommen, wenn Du nach SPALTE, ADRESSE und Zelle (nur als Beispiel) in allen Foren suchen läßt!? Nämlich 858 Treffer. Suchst Du aber mit den gleichen Wörtern nur im OOo Basic und Java Forum (und um dieses Forum geht es hier ja nun mal), dann sind es auf einmal nur noch 86 Treffer.

Und das wiederum hat sehr wohl was mit Logik zu tun.
Denn, ist es logisch, dass man mit Tabellenspezifischen Makroproblemen z.B. im Forum OOo-Draw sucht? Wohl kaum! Da sucht man ja wohl doch ehern hier im Basic-Forum.

steffn hat geschrieben: tu mir doch mal bitte den gefallen und such für mich ...
Den Gefallen tu ich dir nicht (net bös gemeint), denn dadurch lernst DU ja nichts! Es geht ja nicht nur um das Lernen "wie suche ich am effektivsten", sondern auch darum die vorhandenen Code-Schnipsel richtig zu verstehen. Und damit habe ich selber meine Mühe und Not.
Du kannst aber deine zitierten Suchbegriffe nehmen
steffn hat geschrieben: letzte zeile in spalte
oder aber
Letzte Zelle Suchen
Dieser war mir vorhin unter die Finger gekommen (nur so als Beispiel). Und nur im OOo Basic und Java Forum suchen!!!



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: letzte zeile in spalte ?

Beitrag von Karolus »

Hallo
steffn hat geschrieben:...
nein, leider nicht :|
lösch doch mal backsheet.getcellrangebyposition(0,0,2,65535), drück dann auf den PushButton und schau dir backupsheet an
Muss ich mich jetzt entschuldigen, daß ich nicht meine Glaskugel befragt habe um dir eine fix-und-fertig angepasste Lösung für deine Anforderungen zu präsentieren ??
Das verlinkte Beispiel enthält u.a. zwei Codezeilen zur Ermittlung der ersten durchgängig freien Zeile.
Vielleicht solltest du mal deine Aufgabenstellung genauer beschreiben.
steffn hat geschrieben:ich habe meinen code mit dispatcher deutlich verändert und es funktioniert bestens
glücklich bin ich damit aber nicht
Wenn er bestens funktioniert hast du keinen Grund unglücklich zu sein !

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

...

...

...

ich fühle mich hier leider offensichtlich angegriffen und habe das gefühl, ich müsste mich verteidigen
wieso eigentlich?
warum bleibt ihr nicht beim thema?
Karolus hat geschrieben:Muss ich mich jetzt entschuldigen, daß ich nicht meine Glaskugel befragt habe um dir eine fix-und-fertig angepasste Lösung für deine Anforderungen zu präsentieren ??
ich wollte ja eigentlich nur wissen wie es ohne dispatcher funktioniert und keine fertige prozedur von dir
schau mal, erst habe ich nur kurz und knapp "nein" geschrieben, danach habe ich es mir, wie jeden beitrag, noch ein paar mal angeschaut und verändert
erst ":|" dann "hallo karolus" dann "leider nicht" hinzugefügt und dann habe ich sogar noch das beispiel geliefert, was daran nicht so ganz passt
welcher teil davon führt denn dazu, dass du fragst, ob du dich entschuldigen müsstest?
meiner ansicht nach ist das kleine stück text immer netter und präziser geworden lol
Karolus hat geschrieben:Das verlinkte Beispiel enthält u.a. zwei Codezeilen zur Ermittlung der ersten durchgängig freien Zeile.
ja, genau und das hast du ja auch toll gemacht
wenn du aber meinen ersten beitrag so verstehen würdest, wie ich, dann wüsstest du, dass das nur die sogenannte halbe miete ist und eventuell sogar denken kannst, dass ich auf solche beispiele bei meiner suche schon x-mal gestoßen bin
und hier wette ich, dass du dir nicht angeschaut hast, was ich mit "lösch doch mal backsheet.getcellrangebyposition(0,0,2,65535), drück dann auf den PushButton" meinte =)
Karolus hat geschrieben:Vielleicht solltest du mal deine Aufgabenstellung genauer beschreiben.
welchen teil verstehst du denn nicht?
Ich finde die gut
Karolus hat geschrieben:
steffn hat geschrieben:ich habe meinen code mit dispatcher deutlich verändert und es funktioniert bestens
glücklich bin ich damit aber nicht
Wenn er bestens funktioniert hast du keinen Grund unglücklich zu sein !
das ist richtig, wieso sollte ich unglücklich sein?
es gibt nicht nur schwarz und weiß, dazwischen sind noch ganz viele tolle grautöne
wie bereits geschrieben gefällt mir code mit dispatcher nicht, da ich ihn nicht verstehe und auch nicht selbst geschrieben habe
abgesehen davon denke ich übrigens, dass auch professionelle programmierer sich nicht mit dispatcher abfinden =)



ich finde diese vom thema abwegige diskussion sehr unterhaltsam, aber angebrachter wäre es das zu lassen ... deswegen antworte ich auch nicht mehr auf die suchstrategie
wenn man sich nicht ansieht, was bei der suche für zeugs rauskommt, wie kann man dann bewerten, wie gut die ergebnisse sind?
Zuletzt geändert von steffn am Mo, 17.11.2014 19:05, insgesamt 1-mal geändert.
oo4.1.2 in winxp pro mit sp3
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: letzte zeile in spalte ?

Beitrag von komma4 »

steffn hat geschrieben:ich nehme mittlerweile an, dass du weiblich bist, da muss ich noch genauer aufpassen, was ich schreibe
Und was soll der Spruch? Bitte nicht persönlich werden, und schon gar keine diffamierenden Unterstellungen!

Wir versuchen hier zu helfen, so gut es die Frage zulässt. Ich erkenne nichts, was mich zur Annahme verleitet, dass Karolus verärgert sei...

Und: Balu hat Recht, was er über (Deine?!!) Suchstrategie schreibt. Da braucht's etwas Übung um den Dreh rauszukriegen - und den haste wohl noch nicht... ist auch nicht schlimm, nur: nehme die Ratschläge bitte auf. Hier wird nicht "geschossen" - und schon gar nicht ins eigene Knie. *DU* hast Probleme (=Fragen), wir nicht....
Selbst mal chillen.

Schöne Grüsse ins kalte Deutschland
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

komma4 hat geschrieben:Annahme verleitet, dass Karolus verärgert sei...
"Muss ich mich jetzt entschuldigen, daß ich nicht meine Glaskugel befragt habe um dir eine fix-und-fertig angepasste Lösung für deine Anforderungen zu präsentieren ?"
-_-

komma4 hat geschrieben:Balu hat Recht, was er über (Deine?!!) Suchstrategie schreibt.
nein hat er nicht, da es nicht meine suchstrategie ist
es war lediglich ein rhetorisches mittel um anzudeuten das da nichts zu finden ist auch wenn man sehr sehr viele treffer bekommt

komma4 hat geschrieben:Hier wird nicht "geschossen"
falls du das tatsächlich ernst meinst: das ist doch lediglich ein bildlicher ausdruck, eine metapher:
ich starte ein thema -> du verstehst mich offensichtlich falsch -> teilst mir mit, dass ich stattdessen suchen (und finden) soll
eine art angriff mit worten

komma4 hat geschrieben:*DU* hast Probleme
ja und zwar dass ich mich zu schnell angegriffen fühle und mich alle falsch verstehen
schreibt mir einfach (und möglichst genau) wo ich mich wie falsch ausdrücke und schreibt mir wie ich es stattdessen machen soll und ich werde versuchen mich dran zu halten
aber so ...

tatsache ist, dass ich ein paar stunden mit suchen und ausprobieren verschwendet habe
dann starte ich hier früh morgens doch noch ein neues thema
und die erste antwort ist zusammengefasst: "standardfrage -> suchfunktion"

mal ehrlich, was soll ich noch schreiben ... keine ahnung ... ich bezweifle eh, dass mir überhaupt noch einer hilft lol

schöne grüße ins heiße thailand
Zuletzt geändert von steffn am Do, 11.12.2008 20:09, insgesamt 1-mal geändert.
oo4.1.2 in winxp pro mit sp3
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: letzte zeile in spalte ?

Beitrag von Karolus »

Hallo
Wie Winfried schon feststellt, rege ich mich nicht im geringsten auf, ich wollte dich ledigich darauf hinweisen das du deine Fragen genauer stellen musst um passende Antworten zu erhalten.
Eigentlich bin ich zunehmend belustigt wenn ich deine Antworten lese !

Lies mal http://www.dets-home.de/it-writings/sma ... s-ger.html

Gruß
der/die/das ? :lol:
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

na dann bin ich ja erleichtert
aber welchen teil ich genauer hätte formulieren soll, schreibst du leider auch nicht


"Trotzalledem haben Hacker den Ruf, einfachen Fragen mit einer Art zu begegnen, die wie Feindseligkeit oder Arroganz erscheint. Manchmal sieht es aus, als wären wir unverschämt zu Neulingen und Unwissenden."
jo ^^ geil
aber da fällt mir sofort die frage ein:
wenn das hier für euch so einfach ist, wieso habe ich dann das gefühl, dass ihr nur kritisiert, was ich geschrieben habe, anstatt lösungstipps zu geben?
oo4.1.2 in winxp pro mit sp3
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: letzte zeile in spalte ?

Beitrag von komma4 »

steffn hat geschrieben:es war lediglich ein rhetorisches mittel um anzudeuten das da nichts zu finden ist auch wenn man sehr sehr viele treffer bekommt
Kleiner Widerspruch?
Du hast zuviel gefunden... weil Deine Suchstragie wohl falsch war...

Ich weiss schon was Rhetorik ist...
steffn hat geschrieben:eine art angriff mit worten
steffn hat geschrieben:
komma4 hat geschrieben:*DU* hast Probleme
ja und zwar dass ich mich zu schnell angegriffen fühle und mich alle falsch verstehen
Dass Du Dich angegriffen fühlst ist nicht unser Problem (ich sehe immer noch keinen Angriff - auch meine erste Antwort war nicht so zu verstehen).
"Idiot - das war erst letzte Woche hier Thema, zu blöde die Suchfunktion zu nutzen?!!" ist einer.

Und das "falsch verstehen" liegt an der etwas ungenauen Fragestellung, oder?
Warum passt .gotoEndOfUsedArea() nicht?
steffn hat geschrieben:schöne grüße ins heiße thailand
Danke - ist inzwischen viertel nach zwei und nur noch 23 Grad :-/
Übrigens: der Gebrauch der Grossstelltaste erleichtert das Lesen von Beiträgen.

So, genug für heute, ich geh' jetzt ins Bettchen.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: letzte zeile in spalte ?

Beitrag von steffn »

komma4 hat geschrieben:Warum passt .gotoEndOfUsedArea() nicht?
endlich wird es konstruktiv - danke!
möglichst präzise würde ich das als 'methode zur letzten zelle des benutzten bereichs zellen einer tabelle' bezeichnen
ich möchte zu der 'letzte zeile (oder zelle oder index) des benutzten bereichs zellen einer spalte'
wenn man das nicht ganz so präzise verlangt, denke ich, dass der name des themas das einigermassen gut wiedergibt

mittlerweile ist mir jedoch klar ^^ dass auf die frage "letzte zeile in spalte ?" eine korrekte antwort "index 65535" ist ^^
also bitte keine scherze dazu mehr ^^

was ich selber kann ist, alle zeilen einzeln abzufragen, den dispatcher benutzen und eine leere tabelle zur hilfe nehmen
aber das lehne ich solange ab, bis mir jemand sagt, dass es nicht anders funktioniert
komma4 hat geschrieben:Übrigens: der Gebrauch der Grossstelltaste erleichtert das Lesen von Beiträgen.
wenn dir das tatsächlich besser gefällt, dann mache ich das gerne
Ich finde allerdings, dass das im Internet überflüssig ist.

Gute Nacht und bis demnächst :D
oo4.1.2 in winxp pro mit sp3
Antworten