Seite 1 von 1

Datei beim Öffnen automatisch abspeichern – Makro?

Verfasst: Do, 07.12.2006 11:49
von Loewelutz
Auf unserem Server ist für eine Gruppe von Nutzern eine sxc.Datei zum Recherchieren abgelegt. Diese Datei öffnet sich nur für den ersten Nutzer ohne Schreibschutz. Somit kann nur er das integrierte Suchfeld beschreiben.

Um allen Nutzern den Zugriff gleichermaßen zu ermöglichen, war mein Lösungsansatz, dass sich beim Öffnen die Datei automatisch unter einem anderen Namen abspeichert (z. B. durch Ergänzung mit fortlaufender Nummer).

Dieses Abspeichern muss allerdings im selben Ordner erfolgen. Durch die Struktur unseres Netzwerkes hat jeder seinen eigenen Pfad zum Gruppenordner. Daher ist es wichtig, dass dieser Verzeichnispfad selbstständig ausgelesen wird.

Luxus wäre noch das Wegfallen der Warnmeldung für Makros.

Bei meiner Suche bin ich u. a. auf folgenden Hinweis gekommen:

viewtopic.php?t=4150&highlight=abspeichern

Allerdings war ich nicht in der Lage, das auf mein Problem zu übertragen und wäre für Eure Hilfe sehr dankbar.

Gruß Lutz

Verfasst: Do, 07.12.2006 12:18
von RS
Hi,

vielleicht hilft Dir auch dieser Link weiter (natürlich mit entsprechender Anpassung): http://www.ooowiki.de/FortlaufendeRechnungsnummer

Gruß,

Rebecca

Verfasst: Do, 07.12.2006 12:29
von Toxitom
Hey Lutz,

wenn das geöffnete Dokument bereits einen Pfad hat (eine URL), kannst du diesen im Makro mit folgenden Code auslesen:

Code: Alles auswählen

sub Dateipfad
	oDoc = thisComponent
	sAktURL = oDoc.url
	n = 1
	do until instr(n, sAktUrl, "/") = 0 
		n = instr(n, sAktUrl, "/") +1
	loop
	sPfad = left(sAktURL, n-1)
	msgbox sPfad
end sub
Es gibt in den mitgelieferten Makros auch eine vordefinierte Funktion, dann musst du halt die entsprechende Bibliothek laden und die Funktion aufrufen. Das Ergebnis ist das gleiche. (Ich weiss die funktion leider nicht mehr, da musst du selbst suchen.

Der zweite Schritt wäre, dass du irgendwo einen "Zähler" plazieren musst, z.B. in einer kleinen Textdatei, die nur die letzte Zahl beinhaltet - sonst ist ein "hochzählen" schwierig.

Na ja, und das Ganze dann zusammen in einem Code sollte dir dein Problem lösen.

Gruss
Thomas

PS: Die meldung bekommst du damit weg, dass du den Pfad in die Liste der sicheren Pfade aufnimmst (Extras - Optionen- OpenOffice.org - Sicherheit -> Makrosicherheit.)

Datei beim Öffnen mit Makro automatisch abspeichern

Verfasst: Do, 07.12.2006 15:59
von Loewelutz
Hallo Rebecca, Hallo Thomas,

leider komme ich mit Euren Tipps aufgrund meiner geringen Kenntnisse in der Makroprogrammierung nicht wesentlich weiter. Ich habe nun schon einige Zeit vergeblich versucht, den Code zusammen zu stellen.

Das mit dem Pfad auslesen klappt ja schon prima. Nur leider wird dieser in einem Menüfenster angezeigt. Dieser soll aber als Grundlage für die Dateien dienen, die sich dann automatisch unter fortlaufender Nummer im gleichen Ordner abspeichern sollen.

Zum Thema Pfadnamen auslesen hatte ich noch folgenden Code gefunden:

rem filename auslesen

DIM oMasters as Object
DIM oFeld as object ' das Textfeld
oMasters = ThisComponent.getTextFieldMasters()
oFeld = oMasters.getByName("com.sun.star.text.FieldMaster.User.filename")

'msgbox oFeld.name
'msgbox oFeld.content

rem filename auslesen ende

Allerdings weiß ich nicht, wie ich diesen Code anpassen muss. Auch für den Link von Rebecca fehlt mir das nötige Hintergrundwissen.

Gibt es vielleicht noch eine andere Möglichkeit oder erbarmt sich ein kreativer Makroprogrammierer? Das wäre wirklich toll!

Gruß Lutz