Zellposition auf der Drawpage
Moderator: Moderatoren
Zellposition auf der Drawpage
Moin Zusammen,
ist es möglich über die Zelladresse zu ermitteln wo eine Zelle auf der Drawpage liegen würde, ggf auch Höhe und Breite errechnen ?
Ich möchte per Makro über die Zelladresse eine Grafik passgenau auf der Drawpage plazieren (optisch in eine Zelle einfügen),
ist das machbar?
ist es möglich über die Zelladresse zu ermitteln wo eine Zelle auf der Drawpage liegen würde, ggf auch Höhe und Breite errechnen ?
Ich möchte per Makro über die Zelladresse eine Grafik passgenau auf der Drawpage plazieren (optisch in eine Zelle einfügen),
ist das machbar?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zellposition auf der Drawpage
meiner Meinung nach:
Nein, erfahrungsgemäß ist das nicht möglich.
Es gibt mehrere Threads in welchem die genaue Positionierung auf Tabellenblättern anhand der Größe de Zellen diskutiert wird um immer blieb die Feststellung das die von der Zellgröße abgeleitete Positionierung nur ungefähr genau ist. (mmh, diskutiert wurde das bisher wohl immer für OO, ich glaube aber nicht das es bei LO anders ist)
Grund dafür ist, nach Meinung der Mitdiskutanten, Ungenauigkeiten welche sich aus der Rundung (bzw. Umrechnung) von Größenwerten ergeben. Calc ist auch kein Zeichenprogramm, so das solche Ungenauigkeiten bei normaler Verwendung keine Probleme machen.
Gruß
Stephan
Nein, erfahrungsgemäß ist das nicht möglich.
Es gibt mehrere Threads in welchem die genaue Positionierung auf Tabellenblättern anhand der Größe de Zellen diskutiert wird um immer blieb die Feststellung das die von der Zellgröße abgeleitete Positionierung nur ungefähr genau ist. (mmh, diskutiert wurde das bisher wohl immer für OO, ich glaube aber nicht das es bei LO anders ist)
Grund dafür ist, nach Meinung der Mitdiskutanten, Ungenauigkeiten welche sich aus der Rundung (bzw. Umrechnung) von Größenwerten ergeben. Calc ist auch kein Zeichenprogramm, so das solche Ungenauigkeiten bei normaler Verwendung keine Probleme machen.
Gruß
Stephan
Re: Zellposition auf der Drawpage
hallo Stephan,
danke für die schnelle Antwort
Aus deiner Antwort lese ich herraus das man grundsätzlich die Position errechnen kann.
hmmm .... vieleicht habe ich die Betonung zu sehr auf "genau" gelegt,
Ich denke die Ungenauigkeiten in der Berechnung könnte man für ein System jeweils justieren,
die wiederholte Berechnungen liefern vermutlich die gleichen Ergenisse.
Ich würde mich freuen wenn mir jemand aufzeigen könnte, wie man die aus der Zelladresse eine Position auf der Drawpage errechnet.
danke für die schnelle Antwort
Aus deiner Antwort lese ich herraus das man grundsätzlich die Position errechnen kann.
hmmm .... vieleicht habe ich die Betonung zu sehr auf "genau" gelegt,
Ich denke die Ungenauigkeiten in der Berechnung könnte man für ein System jeweils justieren,
die wiederholte Berechnungen liefern vermutlich die gleichen Ergenisse.
Ich würde mich freuen wenn mir jemand aufzeigen könnte, wie man die aus der Zelladresse eine Position auf der Drawpage errechnet.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zellposition auf der Drawpage
zunächst nachträglich ein Screenshot, weil es mich selbst interessiert hat. Beide Programme weichen ab, LO ist augenscheinlich etwas genauer:
Re: Zellposition auf der Drawpage
Ob man das als "Position auf der Drawpage" auffassen soll, weiß ich garnicht, nur die Position jeder Zelle ergibt sich doch aus Breite der Spalten und Höhe der Zeilen, also für B10 z.B.:Ich würde mich freuen wenn mir jemand aufzeigen könnte, wie man die aus der Zelladresse eine Position auf der Drawpage errechnet.
Code: Alles auswählen
Sub Main
'B10
Dim y
Dim x
For i = 0 To 8
y = y + ThisComponent.Sheets.getByIndex(0).Rows(i).Height
Next i
x = ThisComponent.Sheets.getByIndex(0).Columns(0).Width
Msgbox "Linke obere Ecke von Zelle B10 bei y = " & y & " und x = " & x
End Sub
allgemein also z.B.:
Code: Alles auswählen
Sub Position_zelle(spaltenindex, zeilenindex)
Dim y
Dim x
For i = 0 To zeilenindex-1
y = y + ThisComponent.Sheets.getByIndex(0).Rows(i).Height
Next i
For i = 0 To spaltenindex-1
x = x + ThisComponent.Sheets.getByIndex(0).Columns(i).Width
Next i
Msgbox "Linke obere Ecke von Zelle B10 bei y = " & y & " und x = " & x
End Sub
Stephan
Re: Zellposition auf der Drawpage
Danke, das sieht auf den ersten Blick für meinen Zweck ausreichend genau aus,
Was mir im Moment nicht klar ist, addieren sich die Fehler bei höheren Zelladressen ?
Ich hoffe du verräts mir noch, wie man eine Zelladresse in eine Drawpage Position umrechnet,
zB für C1000 muss ich alle vorhergehenden Zeilenhöhen ermitteln, summieren und dann umrechnen oder wie?
edit:
Danke
du warst schneller mit der Antwort wie ich mit meiner Fragerei
ich werde jetzt erst mal experimentieren
Was mir im Moment nicht klar ist, addieren sich die Fehler bei höheren Zelladressen ?
Ich hoffe du verräts mir noch, wie man eine Zelladresse in eine Drawpage Position umrechnet,
zB für C1000 muss ich alle vorhergehenden Zeilenhöhen ermitteln, summieren und dann umrechnen oder wie?
edit:
Danke
du warst schneller mit der Antwort wie ich mit meiner Fragerei
ich werde jetzt erst mal experimentieren
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zellposition auf der Drawpage
Hallo
?? Übersehe ich irgendwas ??
Bei mir hat jede|r Zell(e|bereich) ein Attribut .Position mit X und Y Koordinaten, und ein Attribut .Size mit Width und Height ?
Karolus
?? Übersehe ich irgendwas ??
Bei mir hat jede|r Zell(e|bereich) ein Attribut .Position mit X und Y Koordinaten, und ein Attribut .Size mit Width und Height ?
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zellposition auf der Drawpage
Hallo Karolus
OMG .... nach so ewtas hatte ich schon mit Xray gesucht aber wieder nicht gesehen (das Scheunentor war einfach zu groß)
Ist das direkt die Position auf der Drawpage, dann ist es ja einfach.
OMG .... nach so ewtas hatte ich schon mit Xray gesucht aber wieder nicht gesehen (das Scheunentor war einfach zu groß)
Ist das direkt die Position auf der Drawpage, dann ist es ja einfach.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zellposition auf der Drawpage
Du übersiehst garnichts. Interessant wäre welcher Grund Deiner Meinung nach für Abweichungen besteht. Vielleicht lässt sich daraus das Problem der von mir angesprochenen Abweichungen erklären??? Übersehe ich irgendwas ??
Bei mir hat jede|r Zell(e|bereich) ein Attribut .Position mit X und Y Koordinaten, und ein Attribut .Size mit Width und Height ?
Hinweis: die Abweichungen waren jedoch nicht mein Grund ursprünglich vorgeschlagen zu haben Zeilen- bzw. Spaltengrößen zu addieren, sondern ich hatte einfach nicht nachgesehen das es .Position für Zellen/Zellbereiche gibt.
Code: Alles auswählen
Sub Main
tmp = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("B10:C20").Position
Msgbox tmp.Y '-->4475
For i = 0 To 8
k = k + ThisComponent.Sheets.getByIndex(0).Rows(i).Height
Next i
Msgbox k '-->4491
End Sub
Gruß
Stephan
Re: Zellposition auf der Drawpage
Hallo,
hier: https://www.libreoffice-forum.de/viewtopic.php?t=16028
haben wir so etwas ähnliches schon mal gehabt, um Steuelemente an Zellen anzupassen.
hier: https://www.libreoffice-forum.de/viewtopic.php?t=16028
haben wir so etwas ähnliches schon mal gehabt, um Steuelemente an Zellen anzupassen.
Gruß,
mikeleb
mikeleb
Re: Zellposition auf der Drawpage
Halle mikeleb,
Danke für den Hinweis/ Link
Danke für den Hinweis/ Link
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox