Seite 1 von 1
Suchen und ersetzen in LibreOfficeCalc OLE-Formelobjekt
Verfasst: So 22. Mär 2026, 21:32
von Sandwich
Hallo,
ich möchte in einem OLE-Formelobjekt (also nicht in einer Zellen-Formel) suchen und ersetzen, und habe absolut keine Ahnung, wie das gehen könnte (ausser, dass ich den gesamten Formel-Text kopiere, in einer Text-Datei abspeichere und mit einem Texteditor bearbeite, und dann wieder zurückkopiere).
Geht das auch direkt in LOC?
Danke!
----------
Ubuntu
Version 24.04.4 LTS (Noble Numbat) 64-bit
Kernel Linux 6.8.0-101-generic x86_64
MATE 1.26.2
Version: 24.2.7.2 (X86_64) / LibreOffice Community
Build ID: 420(Build:2)
Re: Suchen und ersetzen in LibreOfficeCalc OLE-Formelobjekt
Verfasst: Mo 23. Mär 2026, 03:17
von karolus
Kannst du eine Calc-datei mit einer oder mehreren Ole-Formeln anhängen und konkret beschreiben was du suchen|ersetzen willst? Danke!
Re: Suchen und ersetzen in LibreOfficeCalc OLE-Formelobjekt
Verfasst: Mo 23. Mär 2026, 18:17
von Sandwich
Das ist nur ein Mini-Beispiel ("2" soll durch "3" ersetzt werden); mein "reales" Beispiel ist viel umfangreicher, sodass alles "händisch" zu durchsuchen zu aufwändig wäre.
Re: Suchen und ersetzen in LibreOfficeCalc OLE-Formelobjekt
Verfasst: Di 24. Mär 2026, 20:14
von mikele
Hallo,
meiner Meinung nach geht das nur per Makro. Das folgende sucht in allen Tabellenblättern nach (OLE)Formeln und ersetzt entsprechend.
Code: Alles auswählen
def ersetzen_in_formeln():
doc = XSCRIPTCONTEXT.getDocument()
suchen="2"
ersetzen="3"
for dp in doc.DrawPages:
for shape in dp:
if shape.supportsService("com.sun.star.drawing.OLE2Shape"):
formel=shape.EmbeddedObject.Component.Formula
shape.EmbeddedObject.Component.Formula=formel.replace(suchen, ersetzen)
bzw. in Basic
Code: Alles auswählen
Sub ersetzen_in_formeln
Doc=ThisComponent
suchen="2"
ersetzen="3"
for k=0 to Doc.Drawpages.Count-1
DP=Doc.Drawpages(k)
for i=0 to DP.Count-1
Shape=DP(i)
if Shape.supportsService("com.sun.star.drawing.OLE2Shape") then
alt=split(Shape.EmbeddedObject.Component.Formula,suchen)
neu=join(alt,ersetzen)
Shape.EmbeddedObject.Component.Formula=neu
end if
next
next
End Sub
Re: Suchen und ersetzen in LibreOfficeCalc OLE-Formelobjekt
Verfasst: Fr 27. Mär 2026, 20:15
von Sandwich
Hallo,
mit Makros hatte ich bis jetzt nichts zu tun. Bis ich mich da eingearbeitet habe, nehme ich mal die Text-Datei-Variante.
Danke!
LG, Sw.