Problemstelung:
ich erstelle aus einer Vorlage ein Dokument und speicher dieses ab.
nun möchte ich makros nicht ausführen wenn ein dokument abgespeichert wurde und wieder geöffnet wurde.
also im Klarttext
If "Dokument ist neu erstellt aus Vorlage" then
"führe Makro xyz aus"
elseif "Dokument würde wieder geöffnet
....
end if
ich hoffe es ist zu verstehen was ich meine
lys.
wie frage ich ab ob es ein neues dokument ist
Moderator: Moderatoren
Hey lysienne,
also, so genau habe ich noch nicht verstanden, was du machen möchtest.
Du erzeugst ein neues Dokument auf der Basis einer Vorlage (in dem du die Vorlage öffnest).
- jetzt speicherst du dieses Dokument ab. (manuel oder per Makro?)
- jetzt möchtest du (automatisch?) ein Makro ablaufen lassen, aber diese darf nur zu dem Zeitpunkt ablaufen, wenn das Dokument quasi das erste mal erzeugt und gespeichert wurde?
- wied das Dokument später nochmals geöffnet, darf das Makro nicht ablaufen?
Hab ich das so in etwa verstanden?
Nun, wenn du die Reihenfolge ein wenig ändern könntest, wäre das einfach machbar:
Speicher das Makro in der Vorlage und verknüpfe es mit dem Ereignis "Dokument erstellen".
Speicherst du das Dokument zunächst, und möchtest dann deine Verzweigung, dann musst du das Erstell-Datum auslesen, es vergleichen mit dem aktuellen Datum und dann basierend aus der Differnz entscheiden, ob das Dokument "neu" oder "alt" war.
Das wäre der Weg.
Gruss
Thomas
also, so genau habe ich noch nicht verstanden, was du machen möchtest.
Du erzeugst ein neues Dokument auf der Basis einer Vorlage (in dem du die Vorlage öffnest).
- jetzt speicherst du dieses Dokument ab. (manuel oder per Makro?)
- jetzt möchtest du (automatisch?) ein Makro ablaufen lassen, aber diese darf nur zu dem Zeitpunkt ablaufen, wenn das Dokument quasi das erste mal erzeugt und gespeichert wurde?
- wied das Dokument später nochmals geöffnet, darf das Makro nicht ablaufen?
Hab ich das so in etwa verstanden?
Nun, wenn du die Reihenfolge ein wenig ändern könntest, wäre das einfach machbar:
Speicher das Makro in der Vorlage und verknüpfe es mit dem Ereignis "Dokument erstellen".
Speicherst du das Dokument zunächst, und möchtest dann deine Verzweigung, dann musst du das Erstell-Datum auslesen, es vergleichen mit dem aktuellen Datum und dann basierend aus der Differnz entscheiden, ob das Dokument "neu" oder "alt" war.
Das wäre der Weg.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
also
ok. ich versuchs nochmal.
also im Grunde will ich nur abfragen ob es sich um ein Dokument handelt, das neu erstellt wurde (also in meinem fall aus einer Vorlage)
oder
ob es sich um ein Dokument handelt welches nur nochmal zum bearbeiten geöffnet wurde.
hoffentlich so verständlicher
also im Grunde will ich nur abfragen ob es sich um ein Dokument handelt, das neu erstellt wurde (also in meinem fall aus einer Vorlage)
oder
ob es sich um ein Dokument handelt welches nur nochmal zum bearbeiten geöffnet wurde.
hoffentlich so verständlicher
Also so ganz ist es mir noch nicht klar, was hier steht ist auch anders als im ersten post, aber:also im Grunde will ich nur abfragen ob es sich um ein Dokument handelt, das neu erstellt wurde (also in meinem fall aus einer Vorlage)
Das Folgende Makro prüft ob:
1. ein neues ungespeichertes Dokument vorliegt
und
2. dieses auf einer Dokumentvorlage (also nicht auf OOo-Defaultvorlage) beruht
(beide Bedingungen müssen erfüllt sein.
Code: Alles auswählen
Sub Main()
IF LEN(ThisComponent.URL) = 0 AND _
LEN(ThisComponent.getDocumentInfo.TemplateFileName) > 0 Then
Msgbox "neues Dokument basierend auf Dokumentvorlage"
Else
Msgbox "kein neues Dokument basierend auf Dokumentvorlage"
end if
End Sub
Gruß
Stephan