Seite 1 von 1

Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 16:55
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!

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 20:48
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 21:03
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 22:31
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 23:05
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 23:09
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.

Re: Koordinaten einer Zelle ermitteln

Verfasst: Do, 12.01.2017 23:45
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Fr, 13.01.2017 09:43
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!

Re: Koordinaten einer Zelle ermitteln

Verfasst: Fr, 13.01.2017 10:15
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!

Re: Koordinaten einer Zelle ermitteln

Verfasst: Fr, 13.01.2017 10:16
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

Re: Koordinaten einer Zelle ermitteln

Verfasst: Fr, 13.01.2017 10:26
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