Seite 1 von 1
Speichern unter...
Verfasst: Di, 18.03.2008 16:19
von fiz
Hallo,
Da ich im calc-Segment des Forums auf die folgende Frage keine befriedigende Antwort erhalten habe, versuche ich es noch einmal hier. Ich hoffe ich werde deshalb nicht zu sehr ausgebuht.
ich habe eine calc-Formularvorlage (ots) die nach dem Ausfüllen unter jeweils einem neuen Namen als ods-Dokument abgespeichert werden soll.
Der Name wird in der Zelle S1 des Formulars aus verschiedenen Zellen des Formulars heraus als String generiert.
Ich suche nun nach einem Makro, das die Datei an einem bestimmten Ort (Pfad) unter dem Namen aus S1 speichert und außerdem das Formular ausdruckt.
Meine (aufgezeichnete) Lösung dazu ist sehr umfangreich und kompliziert und dauert richtig lang und außerdem ist sie immer noch halb manuell.
Wer kann mir helfen?
Gruß,
fiz
Re: Speichern unter...
Verfasst: Di, 18.03.2008 16:27
von komma4
Das Makro wirst Du Dir selbst schreiben müssen - Du findest hier verschiedene Lösungsansätze für Deine Frage, die schon mehrfach gestellt wurde.
Suchbegriffe sind: getCellRangeByName() und storeToURL()
Viel Erfolg. Bei konkreten Fragen meldest Du Dich wieder?!
Re: Speichern unter...
Verfasst: Di, 18.03.2008 16:31
von Karolus
Hallo
Im OOo.wiki findet sich folgendes:
http://www.ooowiki.de/FeldinhaltAlsDateiname
Gruß Karo
Re: Speichern unter...
Verfasst: Di, 18.03.2008 16:46
von fiz
Danke euch beiden
Re: Speichern unter...
Verfasst: Di, 18.03.2008 17:01
von fiz
Hallo karolus,
habe deinen Vorschlag nach bestem WIssen und Gewissen angepasst. Sieht nun so aus:
Code: Alles auswählen
sub SelektionEnde
oDoc=thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
Cell = Sheet.getCellByPosition(18, 0) '[Zelle A1]
Filename = Cell.String
Path = "file:////P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
args1(0).Value = "StarOffice XML (Calc)"
oDoc.storeasurl(Path & Filename & "ods" ,args1())
end sub
Leider kriege ich bei Ausführung einen Laufzeitfehler. Woran könnte das liegen?
Gruß,
fiz
Re: Speichern unter...
Verfasst: Di, 18.03.2008 17:57
von hol.sten
fiz hat geschrieben:Code: Alles auswählen
...
Path = "file:////P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
...
Leider kriege ich bei Ausführung einen Laufzeitfehler. Woran könnte das liegen?
Dein Path enthält zu viele "Slasches" nach "file:". Drei müssen es sein, vier sind es aber. Es müsste also so heißen:
Code: Alles auswählen
...
Path = "file:///P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
...
Re: Speichern unter...
Verfasst: Di, 18.03.2008 18:12
von hol.sten
Zwei Anmerkungen habe ich dann noch zu deinem Basic-Code:
fiz hat geschrieben:Code: Alles auswählen
...
Cell = Sheet.getCellByPosition(18, 0) '[Zelle A1]
...
Dies ist nicht die Zelle A1, sondern die Zelle S1, während "Sheet.getCellByPosition(0,18)" die Zelle A19 wäre.
fiz hat geschrieben:Code: Alles auswählen
...
args1(0).Value = "StarOffice XML (Calc)"
oDoc.storeasurl(Path & Filename & "ods" ,args1())
...
Der Filtername "StarOffice XML (Calc)" gehört zu einem "OpenOffice.org 1.0 Spreadsheet", also
.sxc. Für ein
.ods wäre der Filtername "calc8" angebrachter. Hier findest du die vollständige Liste der Filternamen:
http://wiki.services.openoffice.org/wik ... etDocument
Re: Speichern unter...
Verfasst: Mi, 19.03.2008 08:28
von fiz
Danke Euch beiden,
Wie im ersten Poste geschrieben, möchte ich tatsächlich die Zelle S1 auslesen. Habe nur den Kommentar aus Karolus' Code nicht angepasst.
Der Hinweis auf die Anzahl der Slashes und den Filter war auf jeden Fall gut.
Jetzt läufts!
Gruß,
fiz