Seite 1 von 1
[GELÖST] Bestimmung der Eckpunkte bei Mehrfachselektion
Verfasst: Mo, 10.07.2023 23:44
von Ralf R
Hallo zusammen!
Wenn ich einen selektierten Zellbereich habe, kann ich mit
Code: Alles auswählen
ThisComponent.currentController.select( oCellRange )
oCellRange = ThisComponent.getCurrentSelection()
S1 = oCellRange.rangeAddress.startColumn
Z1 = oCellRange.rangeAddress.startRow
SL = oCellRange.rangeAddress.EndColumn
ZL = oCellRange.rangeAddress.EndRow
die Eckpunkte auslesen.
Bei mehreren Selektionen funktioniert diese Methode nicht.
Gibt es eine Möglichkeit die Eckpunkte für den Bereich, in dem sich die Selektionen befinden, auszulesen?
Beste Grüße,
Ralf
Re: Bestimmung der Eckpunkte bei Mehrfachselektion
Verfasst: Di, 11.07.2023 09:12
von mikeleb
Hallo,
direkt auslesen kannst du es nicht, aber du kannst alle Teilbereiche durchlaufen und die minimalen/maximalen Werte bestimmen.
Re: Bestimmung der Eckpunkte bei Mehrfachselektion
Verfasst: Mi, 12.07.2023 09:06
von Ralf R
Hallo mikeleb!
Danke für die Marschroute, aber den Weg finde ich noch nicht.
Ich versuche es mit einer Schleife:
Code: Alles auswählen
For n = 0 To selektion.getCount() - 1 'UBound(selektion)
ThisComponent.currentController.select( oCellRange )
oCellRange = ThisComponent.getCurrentSelection()'.getRangeAddress
S1 = oCellRange.rangeAddress.startColumn
Z1 = oCellRange.rangeAddress.startRow
SL = oCellRange.rangeAddress.EndColumn
ZL = oCellRange.rangeAddress.EndRow
Next n
Aber mit "rangeAdress" geht es anscheinend nicht, und eine andere Methode fällt mir nicht ein.
Beste Grüße,
Ralf
Re: Bestimmung der Eckpunkte bei Mehrfachselektion
Verfasst: Mi, 12.07.2023 13:01
von mikeleb
Hallo,
probier mal folgendes:
Code: Alles auswählen
Sub Main
oSel=ThisComponent.getCurrentSelection()
'Ist ein einfacher Zellbereich gewählt oder ist es eine Mehrfachselection?
If oSel.supportsservice("com.sun.star.sheet.SheetCellRanges") then
'Mehrfachselection
aAdressen=oSel.getRangeAddresses
i=0
zeile_min=aAdressen(i).StartRow
zeile_max=aAdressen(i).EndRow
spalte_min=aAdressen(i).StartColumn
spalte_max=aAdressen(i).EndColumn
do while i<ubound(aAdressen)
i=i+1
if zeile_min>aAdressen(i).StartRow then zeile_min=aAdressen(i).StartRow
if zeile_max<aAdressen(i).EndRow then zeile_max=aAdressen(i).EndRow
if spalte_min>aAdressen(i).StartColumn then spalte_min=aAdressen(i).StartColumn
if spalte_max<aAdressen(i).EndColumn then spalte_max=aAdressen(i).EndColumn
loop
Else
'einfacher Bereich
zeile_min=oSel.getRangeAddress.StartRow
zeile_max=oSel.getRangeAddress.EndRow
spalte_min=oSel.getRangeAddress.StartColumn
spalte_max=oSel.getRangeAddress.EndColumn
end if
msgbox zeile_min & chr(10) & zeile_max & chr(10) & spalte_min & chr(10) & spalte_max
End Sub
Re: Bestimmung der Eckpunkte bei Mehrfachselektion
Verfasst: Mi, 12.07.2023 16:27
von Ralf R
Hallo mikeleb,
das war ein Treffer ins Schwarze - und zwar genau in die Mitte!
Vielen, lieben Dank!
Ralf