Seite 1 von 2
Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: So 5. Nov 2017, 15:10
von Linuxfreund
Hallo,
ich habe eine Vielzahl von Calc-Dokumenten die miteinander verknüpft sind.
Diese muss ich im Moment manuell nacheinander öffnen, aktualisieren, speichern und schließen.
Ich würde gerne eine Makro oder ein Shell-Programm schreiben, dass nacheinander jedes einzelne Calc-Dokument öffnet, aktualisert, speichert und schließt.
Weder bei Google noch in Foren habe ich vergleichbares gefunden.
Kann mir jemand helfen.
Gruß und Danke
Linuxfreund
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Mo 6. Nov 2017, 17:33
von F3K Total
Hi,
da du weder schreibst mit welcher Version von LO du arbeitest, noch dein Betriebssystem angibst und auch nicht erklärst, wie die Dateien miteinander verknüpft sind, fehlen zu viele Informationen um dir zu helfen.
Gruß R
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Mo 6. Nov 2017, 20:45
von Linuxfreund
Danke für den Hinweis. Sorry.
Betriebssystem: Linux Manjaro
Libre Office: Version 5.3.7.2.0+ Build-ID 5.3.7-4

- Bildschirmfoto_2017-11-06_20-38-43.png (24.7 KiB) 4353 mal betrachtet
Diese Verknüpfung ist z.B. in dem Dokument "Unbekannt 2" eingebunden.
Hoffe, dass diese Infos helfen.
Nochmals vielen Dank.
Gruß
Linuxfreund
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Di 7. Nov 2017, 17:12
von F3K Total
Moin,
so geht's schon besser. Um die Verknüpfungen der Dateien
- Zieldatei1.ods
- Zieldatei2.ods
- Zieldatei3.ods
- Zieldatei4.ods
- Zieldatei5.ods
im Ordner
/home/USER/Dokumente/Linuxfreund/
im Hintergrund zu aktualisieren, funktionieren diese beiden Makros, aus LO heraus gestartet.
Code: Alles auswählen
Sub UpdateAll
Load_Update_Save("Zieldatei1.ods")
Load_Update_Save("Zieldatei2.ods")
Load_Update_Save("Zieldatei3.ods")
Load_Update_Save("Zieldatei4.ods")
Load_Update_Save("Zieldatei5.ods")
print "fertig"
end sub
Sub Load_Update_Save(Dateiname)
Dim sVorlage as String
sVorlage = ConverttoUrl("/home/USER/Dokumente/Linuxfreund/"+Dateiname)
Dim Args(1) As New "com.sun.star.beans.PropertyValue"
Args(0).Name = "UpdateDocMode"
Args(0).Value = com.sun.star.document.UpdateDocMode.QUIET_UPDATE
Args(1).Name = "Hidden"
Args(1).Value = true
oDoc = StarDesktop.loadComponentFromUrl(sVorlage, "_blank", 0, Args())
for i = 0 to odoc.AreaLinks.Count - 1
odoc.AreaLinks(i).refresh
next i
oDoc.store
oDoc.close - 1
End Sub
Unter Linux-Mint getestet.
Gruß R
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Di 7. Nov 2017, 18:47
von Linuxfreund
Vielen Dank.
Da ich mit Makros leider noch nicht soviel gearbeitet habe, habe ich noch eine Verständnisfrage.
Bei meinen bisherigen Versuchen habe ich bisher die Testmakro direkt bei dem einen Dokument angehängt. Hatte es so verstanden, dass eine Makro immer nur für die eine angewendet wird.
Hier bezieht sich das erste Makro auf fünf Dokumente. Wo und wie muss ich dieses Makro einhängen?
Oder kann ich ein Makro ohne direktem Dateinamen generell bei allen Dokumenten einbinden, damit bei Verknüpfungen immer automatisch aktualisiert und gespeichert wird?
Gruß
Linuxfreund
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Di 7. Nov 2017, 19:04
von F3K Total
Wenn die Pfade stimmen, ist es egal ob du das Makro UpdateAll aus einem Dokument oder direkt aus LO (unter "meine Makros") startest. Es werden die fünf Dateien geöffnet, aktualisiert, gespeichert und wieder geschlossen. Den Verknüpfungspfad haben sie ja in sich.
R
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Di 7. Nov 2017, 21:39
von Linuxfreund
Ich habe beide Makros mal getestet, aber anscheinend mache ich etwas falsch.
Gestartet habe ich die Makros direkt mit "Makro ausführen", ohne vorher ein Dokument zu öffnen.
Bei der ersten Makro habe ich die folgende Fehlermeldung bekommen.
Ich habe die verschiedenen Schreibformen des Dokuments getestet (mal mit der Verzeichnisstruktur und mal nur den Dokumentennamen). Der Fehler lautete immer gleich.
Bildschirmfoto_2017-11-07_20-53-38.png
Bei der zweiten Makro habe ich die folgende Fehlermeldung erhalten:
Bildschirmfoto_2017-11-07_21-09-21.png
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Di 7. Nov 2017, 21:41
von Linuxfreund
Die Bilder hat er eben leider nicht angezeigt. Zweiter Versuch

- Bildschirmfoto_2017-11-07_20-53-38.png (31.27 KiB) 4315 mal betrachtet

- Bildschirmfoto_2017-11-07_20-53-38.png (31.27 KiB) 4315 mal betrachtet
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Mi 8. Nov 2017, 10:15
von mikele
Hallo,
beide Makros am besten in ein Modul schreiben, damit sie sich untereinander finden ...
Re: Marko oder Shellprogramm für Aktualisierung von Calc-Dokumenten
Verfasst: Mi 8. Nov 2017, 11:54
von musikai
Außerdem sind nun die Pfade im Code ungünstig verändert.
Das Original funktioniert so:
Das erste Macro (UpdateAll), das Hauptprogramm, das Du ausführen musst, nennt nur die Dateinamen. Es bedient sich dann dem 2.Macro, in dem der Pfad angegeben ist. An den hängt es dann den Dateinamen an. Pass auf, dass Du nicht doppelt moppelst.