Koordinaten einer Zelle ermitteln

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

Moderator: Moderatoren

drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

Koordinaten einer Zelle ermitteln

Beitrag von drbrode »

Hallo,

bin neu hier und habe eine Frage.

Ich möchte gerne in OpenOffice calc per Makro die Koordinaten einer Zelle ermitteln. Also nicht Zeile/Spalte sondern die tatsächlichen xy-Koordinaten.

Kann mir jemand helfen?

Beste Grüße!
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Koordinaten einer Zelle ermitteln

Beitrag von lorbass »

drbrode hat geschrieben:Also nicht Zeile/Spalte sondern die tatsächlichen xy-Koordinaten.
Verstehe ich nicht? Was verstehst du denn unter den „tatsächlichen xy-Koordinaten“, wenn es nicht die Zeilen und Spalten-Angabe sein darf? Polar-Koordinaten? GPS-Koordinaten?

Übrigens: Immer wieder gern genommen bei Problemen des Alltags wird Michael Dannenhöfers StarBasic / OpenOffice.org Basic FAQ.

Gruß
lorbass
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Koordinaten einer Zelle ermitteln

Beitrag von Stephan »

Meiner Ansicht nach gibt es keine Koordinaten, ich kenne nur das Size-Objekt einer Zelle mit den Eigenschaften Width und Height.
Demnach läge die linke obere Ecke von Zelle D2 auf den Koordinaten:

Code: Alles auswählen

Sub Main
Dim x_ges
Dim y_ges
With ThisComponent.Sheets(0)
	For i = 0 to 3
		x_ges = x_ges + .Columns(i).size.Width
	Next i
	For i = 0 To 1
		y_ges = y_ges + .rows(i).size.Height
		Msgbox .rows(i).size.Height
	Next i
End With
Msgbox "x: " & x_ges & CHR(13) & "y: " & y_ges
End Sub
Ohne das weiter geprüft zu halben dürfte das ERgebnis aber ungenau sein, denn es ist erfahrungsgemäß so das eine genaue Platzierung von Objekten in einem Tabellenblatt aufgrund von Zeilen- und Spaltenabmessungen nie genau passt, das wurde schon mehrfach hier im Forum thematisiert.



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Koordinaten einer Zelle ermitteln

Beitrag von balu »

Guten Abend.
Stephan hat geschrieben: Meiner Ansicht nach gibt es keine Koordinaten
Einspruch Euer Ehren! :-)

Code: Alles auswählen

Sub Main
    PRINT ThisComponent.sheets(0).getCellRangeByName("C3").POSITION.x
    PRINT ThisComponent.sheets(0).getCellRangeByName("C3").POSITION.y
End Sub
Zu der Genauigkeit sage ich jetzt nix, das muss man selber mal gegentesten. Aber wie zu sehen ist, hat auch eine Zelle eine X/Y Koordinate. So etwas findet man leicht mit den Tools XRAY und/oder MRI heraus.



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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Koordinaten einer Zelle ermitteln

Beitrag von Stephan »

Einspruch Euer Ehren!
Danke, wieder was gelernt.
So etwas findet man leicht mit den Tools XRAY und/oder MRI heraus.
ja, ich hätte nur garnicht erwartet das es das gibt, ich habe noch nie davon gehört.


Gruß
Stephan
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Koordinaten einer Zelle ermitteln

Beitrag von Karolus »

Hallo

Ich weiss ja das es in Basic egal ist ob man Gross|Kleinschreibung verwendet, trotzdem würde ich vorschlagen, exakt die Schreibweise zu benutzen die Mri respektive Xray zurückgeben.
Das wäre dann Position.X und .Position.Y

In Python ist es zum Glück nicht egal.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Koordinaten einer Zelle ermitteln

Beitrag von balu »

Stephan hat geschrieben: Danke, wieder was gelernt.
Gern geschehn :-)


Karolu hat geschrieben: Ich weiss ja das es in Basic egal ist ob man Gross|Kleinschreibung verwendet
Stimmt nicht bei allem. Beispiel: *"com.sun.star....*

Karolu hat geschrieben: trotzdem würde ich vorschlagen, exakt die Schreibweise zu benutzen die Mri respektive Xray zurückgeben.
Bekenne mich schuldig. Da habe ich in der kurzen Fernseh Werbepause nicht richtig aufgepasst. ;-)



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
drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

Re: Koordinaten einer Zelle ermitteln

Beitrag von drbrode »

Code: Alles auswählen

Sub Main
PRINT ThisComponent.sheets(0).getCellRangeByName("C3").POSITION.x
PRINT ThisComponent.sheets(0).getCellRangeByName("C3").POSITION.y
End Sub

Zu der Genauigkeit sage ich jetzt nix, das muss man selber mal gegentesten. Aber wie zu sehen ist, hat auch eine Zelle eine X/Y Koordinate. So etwas findet man leicht mit den Tools XRAY und/oder MRI heraus.
Vielen Dank für den Hinweis. Das Auslesen funktioniert auch prima. Leider scheint die Angabejedoch wie von dir erwähnt nicht ganz zu stimmen. Ich nutze die Funktion, um an diese Stelle eine in der Tabelle enthaltene Grafik zu verschieben. Trotz Verankerung an der Zelle wandert diese nämlich nach Formatierungsänderungen fröhlich auf dem Tabellenblatt umher. Leider ist Sie auch bei der Verwendung der Koordinaten nicht an der richtigen Stelle... :-( Aber mal sehen, ob ich das noch hinkriege.
Übrigens: Immer wieder gern genommen bei Problemen des Alltags wird Michael Dannenhöfers StarBasic / OpenOffice.org Basic FAQ.
Die Seite kenne ich natürlich und ziehe sie auch regelmäßig zu rate. Die gewünschte Funktion habe ich dort aber leider nicht gefunden.

Danke nochnmal an alle für die schnellen und zahlreichen Beiträge!
drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

Re: Koordinaten einer Zelle ermitteln

Beitrag von drbrode »

Ooohh, Kommando (teilweise) zurück!

Habe festgestellt, dass die Grafik zwar in der Tabellenansicht (scheinbar) an der falschen Stelle angezeigt wird, jedoch in der Druckansicht (und das war für mich das entscheidene) vollkommen korrekt platziert wird. Somit ist das Problem für mich gelöst. :-)

Trotzdem verhält sich OpenOffice hier für mich nicht ganz nachvollziehbar. Ein ähnlicher Effekt tritt auch immer auf, wenn man optimale Zeilenhöhen enstellt. In einer Zelle mit Textumbruch verschwindet dann in der Tabellenansicht unten machchmal etwas vom Text. In der Druckansicht hat die Zelle dann aber wirklich die optimale Höhe und der gesamte Text wird korrekt ausgedruckt.

Das Problem ist aber anscheinend schon zur genüge bekannt, wie Stephan bemerkt hat. Eine Lösung/Erklärung scheint es aber (noch) nicht zu geben...?

Beste Grüße!
Rocko
*******
Beiträge: 1164
Registriert: Do, 11.10.2012 13:19

Re: Koordinaten einer Zelle ermitteln

Beitrag von Rocko »

drbrode hat geschrieben:Trotz Verankerung an der Zelle wandert diese nämlich nach Formatierungsänderungen fröhlich auf dem Tabellenblatt umher. Leider ist Sie auch bei der Verwendung der Koordinaten nicht an der richtigen Stelle...
Folglich liegt das Problem an der Verankerungsfunktion von Objekten in einer Calc-Tabelle. Vielleicht helfen dir zum Verständnis der Problematik folgende Beiträge ein Stück weiter.

viewtopic.php?f=25&t=63444#p242229
viewtopic.php?f=25&t=66069#p257462
Hast du schon mal einen Blick in die Writer-FAQ und in die Calc-FAQ des Forums geworfen?
Für jeden vor dem Beginn seiner Seminararbeit ein unbedingtes MUSS: http://openoffice-uni.org/
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Koordinaten einer Zelle ermitteln

Beitrag von Stephan »

Das Problem ist aber anscheinend schon zur genüge bekannt, wie Stephan bemerkt hat. Eine Lösung/Erklärung scheint es aber (noch) nicht zu geben...?
Die Erklärung die diesbezüglich hier im Forum bisher genannt wurde ist m. Erinnerung nach die Annahme das Ungenauigkeiten auftreten aufgrund von Rundungsfehlern von Zoll ins metrische System. Ob das wirklich den Tatsachen entspricht bzw. die alleinige Ursache ist weiß ich nicht.


Gruß
Stephan
Antworten