Seite 1 von 1

[gelöst] Makro - Calc - Schließen einer Tabelle

Verfasst: Do, 27.12.2012 14:34
von nanduriel
Hallo OpenOffice-Community =)


mein Makro soll nach einer gewissen Zeit die verwendete Star-Office-Tabelle schließen und eventuelle Einträge sichern.


----

Code: Alles auswählen

sub schlafmuetze

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue

Wait 50000

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())



dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
        oDoc = thisComponent
odoc.store
odoc.close(true)

end sub


----

Soweit alles gut. Die Datei schließt sich nach der Zeit von selbst.

Aber...
Wenn ich aus der Tabelle vor der definierten Zeit herausgehe, läuft das Makro im Hintergrund weiter.
Auswirkung: ich komme nur noch schreibgeschützt in die Tabelle und muss warten bis die Zeit abgelaufen ist.
Mit welchem Befehl kann ich mein Makro beim vorzeitigen Beenden abbrechen?

Ich dachte ich könnte ein Button in meine Tabelle einfügen "Speichern und Beenden". Das Makro muss mein Makro Schlafmuetze beenden und anschließend die Datei sichern und beenden. Nur weiß ich nicht wie ich das umsetzen soll =(


Danke für eure Hilfe,
Gruß,
Nandu

Re: Makro - Calc - Schließen einer Tabelle

Verfasst: So, 30.12.2012 17:10
von nanduriel
Habe viel probiert, aber leider immer noch keine Lösungs gefunden.

Hat keiner eine Idee wie ich ein laufendes Makro mit einem WAIT-Befehl beenden kann?
Bzw. WAIT abbrechen kann

Gruß Nandu

Re: Makro - Calc - Schließen einer Tabelle

Verfasst: So, 30.12.2012 17:42
von F3K Total
Hallo,
mit einem "Schalter" bexit kannst Du eine Schleife verlassen:

Code: Alles auswählen

global bexit as boolean

sub schlafmuetze
    odoc = thiscomponent
    bexit = false
    for i = 1 to 500
    wait 100
    if bexit then goto 100
    next i
    odoc.store
    odoc.close(true)
    100:
end sub

sub S_exit
    odoc = thiscomponent
    if msgbox ("Soll das Dokument geschlossen werden",36,"Dokument schliessen") = 6 then
        bexit = true
        wait 101
        odoc.store
        odoc.close(true)
    else
        bexit = true    
    endif
end sub
Anbei ein Beispiel

Gruß R

Re: Makro - Calc - Schließen einer Tabelle

Verfasst: Mo, 31.12.2012 13:17
von nanduriel
Hallo F3K Total ,


vielen, vielen Dank für die Lösung!
Der Code funktioniert einwandfrei =)

Das Thema kann geschlossen werden.

Ich wünsch allen einen guten Start ins neue Jahr

Gruß,
Nanduriel

Re: Makro - Calc - Schließen einer Tabelle

Verfasst: Mo, 31.12.2012 14:55
von lorbass
nanduriel hat geschrieben:Das Thema kann geschlossen werden.
Do it yourself! Öffne deinen ersten Beitrag des Themas mit Ändern, stelle dem Betreff den Hinweis »[gelöst]« voran und klicke auf Absenden. Fertig.

Gruß
lorbass