🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Anzeigeproblem nach Makroausführung

Alles zur Programmierung im LibreOffice.
Antworten
Hinzi
Beiträge: 2
Registriert: Fr 6. Sep 2013, 14:05

Anzeigeproblem nach Makroausführung

Beitrag von Hinzi » Fr 6. Sep 2013, 14:19

Hallo liebe Community,

ich habe folgendes Problem:

ich schreibe mit einem Makro einen Zeitstempel in eine bestimmte Zelle in einer Calc Tabelle. Das funktioniert auch, jedoch sehe ich das nur, wenn ich die Zelle anklicke und oben in die Eingabezeile schaue (siehe Bild). Wenn ich aber das Calc Fenster z.B. minimiere oder speichere, dann sehe ich den Wert auch richtig in der Zelle. Das Screenupdating oder Werteneuberechnung wird im Makro nicht ausgeschaltet. Hoffe ihr könnt helfen.

Bild

vg
Christoph

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Anzeigeproblem nach Makroausführung

Beitrag von F3K Total » Fr 6. Sep 2013, 23:21

Hallo,
versuchs mal so:

Code: Alles auswählen

Sub Main
    ocell = thiscomponent.sheets(0).getcellbyposition(0,0)
    ocell.value = now()
    thiscomponent.calculateall
End Sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Hinzi
Beiträge: 2
Registriert: Fr 6. Sep 2013, 14:05

Re: Anzeigeproblem nach Makroausführung

Beitrag von Hinzi » Mo 9. Sep 2013, 08:57

Hallo,

das hat zwar das Problem gelöst, jedoch hat er mit diesem Befehl auch wieder das Makro gestartet, dass auf eine Eingabe in der 3. Spalte wartet und somit ist es in einer Endlosschleife hängen geblieben. Ein Kollege von mir meinte, dass es nach Strg+Umschalt+R alles richtig angezeigt wird. Da habe ich einfach mal ein Makro aufgezeichnet und die Tastenkombination gedrückt. Folgender Code kam dabei heraus:

Code: Alles auswählen

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Repaint", "", 0, Array())
Diesen einfach hinten dran kopiert ans Makro und schon hat alles funktioniert. Für alle die mal das selbe Problem haben sollten.

Viele Grüße


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten