Libre Office

CALC Makro: Wert in Zelle schreiben, Blatt drucken

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
LO_Micha
Beiträge: 12
Registriert: Mi 31. Aug 2016, 11:03

CALC Makro: Wert in Zelle schreiben, Blatt drucken

Beitrag von LO_Micha » Sa 25. Jul 2026, 19:10

Eine CALC -Tabelle dient als Vorlage für eine handschriftliche Datenerfassung.
In Zelle A2 wird das Datum Monats-Ersten eingetragen, z.B. 2026-08-01. Damit werden per Formeln für diesen Monat alle zugehörigen Tage eingetragen.
Außerdem gibt es eine Schaltfläche "Drucken".
Das Makro soll die Vorlage für mehrere (nachfolgende) Monate drucken, als Start habe ich dem Makro-Rekorder diesen Code erzeugt und in dieser Tabelle gespeichert:

Code: Alles auswählen

REM  *****  BASIC  *****

SUB Print
rem define variables
DIM objDocument   AS OBJECT
DIM objDispatcher AS OBJECT
rem ----------------------------------------------------------------------
rem get access to the document
ojDocument   = ThisComponent.CurrentController.Frame
objDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
DIM args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2"

objDispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
DIM args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=2026-08-01"
objDispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
objDispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
objDispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())

END SUB
Probleme:
  • In der Schaltfläche kann ich den Code nicht zuordnen, das Makro "Print" wird gar nicht angezeigt.
    Nach "Einzelschritt" eine Fehlermeldung:
    BASIC-Syntaxfehler. Symbol erwartet.
Wie mache ich es richtig? Es wäre fein, wenn die Schaltfläche
  • Eine Jahr / Monat - Kombination als Startwert abfragt,
  • Die Anzahl der zu druckenden Monate abfragt und
  • damit den Druck startet.

Open Office
Antworten