[Gelöst] Bedingter Text in Serienbrief-Vorlage
Verfasst: Sa 28. Feb 2026, 17:32
Ich habe vor über 20 Jahren eine Heiz-und Nebenkostenabrechung für eine kleinere Wohneinheit (16 Objekte) in Excel erstellt. Diese Excel Datei dient dann als Datenquelle für die per Serienbrief-Funktion mit Word zu erstellten Einzel-Abrechnungen.
Aus verschiedenen Gründen möchte ich nun alles auf LibreOffice umstellen, habe da aber ein kleines Problem.
Die Spreadsheet Tabelle, enthält u.a. eine Spalte "Monate", die angibt, wie lange der Eigentümer/Mieter im Abrechnungsjahr in dem Objekt gewohnt hat, und demgemäß werden verschiedene Posten der Abrechnung anteilig aufgeteilt:
So soll es aussehen, hier z.B. für die Nebenkosten der Heizung:
Für das ganze Jahr:
Nebenkosten für Heizung lt. Anlage: 267,15 €
oder anteilig für X Monate:
Nebenkosten für Heizung lt. Anlage: (anteilig 8 Monate) 178,10 €
Der Text "(anteilig x Monate)" soll also nur ausgegeben werden, wenn die Monatsanzahl aus der Tabelle <>12 ist. Das bekomme ich über eine Bedingung in Writer hin. Der Text soll aber auch die Monatszahl enthalten. DAS bekomme ich nicht hin. Vermutlich nur eine Kleinigkeit, aber ich konnte dazu hier und über Google nichts finden.
In MS Word habe ich das über diese Konstruktion realisiert:
Nebenkosten für Heizung lt. Anlage: { IF { MERGEFIELD Monate } <> 12 "(anteilig {MERGEFIELD Monate} Monate)" "" } { MERGEFIELD Nebenkosten } €
Nun versuche ich bereits seit 2 Tagen, das über "bedingter Text" in Writer hinzubekommen. Ich kann aber offenbar nur entweder den Text oder den Wert ausgegeben, jedenfalls habe ich bisher keine Möglichkeit gefunden, beides zu kombinieren.
Eine zusätzliche Spalte im Spreadsheet könnte das natürlich machen, darauf möchte ich aber gerne aus Kompatibilitätsgründen verzichten.
Geht das, so wie ich das möchte, wirklich nicht oder hat jemand eine Idee, wie ich das machen könnte?
Wenn die Writer-Vorlage dann soweit fertig ist, soll das Ganze dann (wie bisher in MS Office) über ein Makro ablaufen, dass beim Öffnen der Writer Vorlage automatisch startet und dann folgendes macht: das Abrechungsjahr abfragen, die entsprechenden Calc-Tabelle (unsichtbar) öffnen und die benötigte Tabelle in eine (ebenfalls unsichtbare) temporäre Datei kopieren, die Serienbrieffunktion aufrufen und die 16 Abrechnungen zusammen in eine neue Writer-Datei schreiben, und abschließend die Calc Datei und die temporäre Datei schließen. Dazu tauchen eventuell auch noch Fragen auf, aber so weit bin ich noch nicht.
Ich verwende Windows 11 und LibreOffice 25.8.5.2
Hatte übrigens zunächst versehentlich die 26.x Beta installiert, mit der ich aber das Problem hatte, dass Dateien ständig schreibgeschützt wurden.
Aus verschiedenen Gründen möchte ich nun alles auf LibreOffice umstellen, habe da aber ein kleines Problem.
Die Spreadsheet Tabelle, enthält u.a. eine Spalte "Monate", die angibt, wie lange der Eigentümer/Mieter im Abrechnungsjahr in dem Objekt gewohnt hat, und demgemäß werden verschiedene Posten der Abrechnung anteilig aufgeteilt:
So soll es aussehen, hier z.B. für die Nebenkosten der Heizung:
Für das ganze Jahr:
Nebenkosten für Heizung lt. Anlage: 267,15 €
oder anteilig für X Monate:
Nebenkosten für Heizung lt. Anlage: (anteilig 8 Monate) 178,10 €
Der Text "(anteilig x Monate)" soll also nur ausgegeben werden, wenn die Monatsanzahl aus der Tabelle <>12 ist. Das bekomme ich über eine Bedingung in Writer hin. Der Text soll aber auch die Monatszahl enthalten. DAS bekomme ich nicht hin. Vermutlich nur eine Kleinigkeit, aber ich konnte dazu hier und über Google nichts finden.
In MS Word habe ich das über diese Konstruktion realisiert:
Nebenkosten für Heizung lt. Anlage: { IF { MERGEFIELD Monate } <> 12 "(anteilig {MERGEFIELD Monate} Monate)" "" } { MERGEFIELD Nebenkosten } €
Nun versuche ich bereits seit 2 Tagen, das über "bedingter Text" in Writer hinzubekommen. Ich kann aber offenbar nur entweder den Text oder den Wert ausgegeben, jedenfalls habe ich bisher keine Möglichkeit gefunden, beides zu kombinieren.
Eine zusätzliche Spalte im Spreadsheet könnte das natürlich machen, darauf möchte ich aber gerne aus Kompatibilitätsgründen verzichten.
Geht das, so wie ich das möchte, wirklich nicht oder hat jemand eine Idee, wie ich das machen könnte?
Wenn die Writer-Vorlage dann soweit fertig ist, soll das Ganze dann (wie bisher in MS Office) über ein Makro ablaufen, dass beim Öffnen der Writer Vorlage automatisch startet und dann folgendes macht: das Abrechungsjahr abfragen, die entsprechenden Calc-Tabelle (unsichtbar) öffnen und die benötigte Tabelle in eine (ebenfalls unsichtbare) temporäre Datei kopieren, die Serienbrieffunktion aufrufen und die 16 Abrechnungen zusammen in eine neue Writer-Datei schreiben, und abschließend die Calc Datei und die temporäre Datei schließen. Dazu tauchen eventuell auch noch Fragen auf, aber so weit bin ich noch nicht.
Ich verwende Windows 11 und LibreOffice 25.8.5.2
Hatte übrigens zunächst versehentlich die 26.x Beta installiert, mit der ich aber das Problem hatte, dass Dateien ständig schreibgeschützt wurden.