ich habe ein Problem mit einem Serienbrief und ich hoffe, jemand kennt sich hier gut aus und kann mir weiterhelfen.
Das Problem ist: Die Daten bestimmter Tabellenzellen (ods-Datei), die dort über ein Makro berechnet werden, werden im Serienbrief nicht angezeigt.
Jetzt alles etwas genauer:
- Ich verwende LibreOffice Version: 6.2.7.1 (x64)
- In der Datei Datenbank.ods befinden sich mehrere Tabellen. Die Daten aus Tabelle1 sollen in einen Serienbrief überführt werden.
- Datenbank.ods enthält außerdem Makros. Eines davon ist dieses hier:
Code: Alles auswählen
function gewichteterDurchschnitt ( n1 as double, p1 as double, n2 as double, p2 as double, optional n3 as double, optional p3 as double, optional n4 as double, optional p4 as double, optional n5 as double, optional p5 as double ) if n1 <> 0 then faktor1 = p1 else faktor1 = 0 end if if n2 <> 0 then faktor2 = p2 else faktor2 = 0 end if if n3 <> 0 then faktor3 = p3 else faktor3 = 0 end if if n4 <> 0 then faktor4 = p4 else faktor4 = 0 end if if n5 <> 0 then faktor5 = p5 else faktor5 = 0 end if dim faktor as double faktor = 1 / ( faktor1 + faktor2 + faktor3 + faktor4 + faktor5 ) dim note as double note = faktor * ( n1 * p1 + n2 * p2 + n3 * p3 + n4 * p4 + n5 * p5 ) gewichteterDurchschnitt = note End function
- Dieses Makro macht so etwas ähnliches wie MITTELWERT, nur dass nicht alle Werte (n1 bis n5) gleich gewichtet werden (bei fünf Werten also jeweils ein Fünftel = 20 %), sondern man die Gewichtung festlegen kann. Die Gewichtung erfolgt durch p1 bis p5. Falls die Prozensätze p1 bis p5 in der Summe (fälschlicherweise) nicht 100 % = 1 ergeben, wird die Berechnung angepasst und es stimmt trotzdem.
- Die Daten aus Datenbank.ods sollen in Serienbrief.odt verwendet werden.
Nur zeigt Writer bei den Feldern, deren Wert in Calc durch das Makro berechnet wird, statt z.B. "12,1" leider nur "#WERT!" an.
Auf der Suche nach dem Fehler habe ich festgestellt, dass sich dies genauso bei Zellen verhält, in denen ein anderes Makro die Daten lieferte. Daher komme ich zu der Ansicht, dass es zu einem Problem kommt, wenn Writer durch den Serienbrief die Daten aus Calc abruft, die durch ein Makro entstehen.
In Calc werden die Werte in den entsprechenden Zellen korrekt angezeigt.
Wenn ich jedoch zuerst Serienbrief.odt öffne, und danach Datenbank.ods, wird die Calc-Datei zunächst einmal nur mit Schreibschutz geöffnet, was normal sein müsste. Allerdings steht jetzt auch in Calc in den Zellen, deren Werte durch Makros entstehen, nicht mehr die entsprechenden Werte, sondern nun ebenfalls "#WERT!".
Ich sehe zwei Auswege:
1. Entweder muss ein Formel-Ersatz für das Makro GewichteterDurchschnitt gefunden werden, um das Problem zu umgehen. Gibt es das oder kennt jemand so etwas?
2. Oder irgendwie müssen in diesem Kontext die Makros zum Laufen gebracht werden. Hat jemand einen Rat oder eine Vermutung?
Vielen Dank im Voraus an alle, die etwas beisteuern können.
Viele Grüße
Freddy