[Gelöst] Zellbereich verbundener Zellen ermitteln

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [Gelöst] Zellbereich verbundener Zellen ermitteln

Re: Zellbereich verbundener Zellen ermitteln

von Stephan » Do, 14.05.2020 10:41

mikeleb hat geschrieben: Mi, 13.05.2020 20:32 Hallo,
mittels eines Cursors kommst du an den verbundenen Bereich:

Code: Alles auswählen

	oDoc=ThisComponent
	oSel=oDoc.CurrentSelection
	oTab=oSel.Spreadsheet
	oCur=oTab.createCursorByRange(oSel)
	oCur.collapseToMergedArea()
Das ist ein interessanter Code-Schnipsel(*), vor allem auch weil mir bei dem Thema verbundene Zellen deutlich wird das ich diesen Fall noch nie in Makros berücksichtigt habe, welche in Calc Zell-Selektionen analysieren, denn immer prüfe ich nur nach Cell, CellRange und CellRanges.

(*)
und natürlich auch eine interessante Lösung, die (zumindest) ich bisher garnicht kannte



Gruß
Stephan

Re: Zellbereich verbundener Zellen ermitteln

von womolbo » Mi, 13.05.2020 21:04

That's it. Vielen, vielen Dank.

Re: Zellbereich verbundener Zellen ermitteln

von mikeleb » Mi, 13.05.2020 20:32

Hallo,
mittels eines Cursors kommst du an den verbundenen Bereich:

Code: Alles auswählen

	oDoc=ThisComponent
	oSel=oDoc.CurrentSelection
	oTab=oSel.Spreadsheet
	oCur=oTab.createCursorByRange(oSel)
	oCur.collapseToMergedArea()

Re: Zellbereich verbundener Zellen ermitteln

von womolbo » Mi, 13.05.2020 19:16

@Stephan:
Vielen Dank für die enorm schnelle Hilfe.

Ich habe mir den Link/Code/Text gerade angesehen und nehme an, dass du mich mißverstanden hast.
Es geht nicht um Mehrfachauswahlen, sondern um verbundene Zellen.

Nehmen wir als Beispiel den Zellbereich A1 bis C4 und verbinden diese 4 Zeilen und 3 Spalten zu einer
einzelnen Fläche, die sich im Hintergrund über 12 Zellen erstreckt.
Wenn ein Anwender auf diese Fläche klickt und sie dann als ganzes markiert angezeigt wird, so liefert
getCurrentSelection() nur eine Referenz auf die erste Zelle dieses verbundenen Bereichs [hier also A1].
Entsprechend liefert getCurrentSelection().supportsService("com.sun.star.sheet.SheetCell") true,
da ja nur optisch mehre Zellen markiert scheinen. Man sieht ja auch im Adreßfeld, dass nur A1 als
selektiert betrachtet wird. Und auch .StartRow und Co. liefern nur die Daten einer einzigen Zelle
[also A1,der ersten Zelle].

Für mich stellt sich die Frage wie und ob man von der 'einen' markierten Zelle die Adresse des verbundenen
Zellbereichs zu dem die Zelle gehört kommt um die Anzahl der Zeilen und Spalten zu ermitteln.

Gruß.Vjeko.

Re: Zellbereich verbundener Zellen ermitteln

von Stephan » Mi, 13.05.2020 08:46

siehe "Sub mehrfachSelektion" auf Seite 24 in:
http://www.calc-info.de/files/Calc_StarBasic.pdf


Gruß
Stephan

[Gelöst] Zellbereich verbundener Zellen ermitteln

von womolbo » Mi, 13.05.2020 08:28

Hallo,
kann mir jemand einen Hinweis geben, wie ich in Calc die Adresse des gerade markierten verbundenen Zellbereichs ermittle?
Letztlich brauche ich die Anzahl Zeilen und Spalten anklickbarer verbundener Bereiche.
Trotz Xray und zwei Stunden Suche habe ich selber leider keine direkte/elegante Lösung gefunden.
Vielen Dank und Gruß

Nach oben