Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Word 2010 Datum einfügen

37 views
Skip to first unread message

Jürgen Meyer

unread,
Dec 14, 2011, 11:58:52 AM12/14/11
to
Ich möchte gerne, dass in Word 2010 das aktuelle Datum nur beim ersten
Druck automatisch eingefügt wird. Bei einem späteren Ausdruck soll das
ursprüngliche Datum nicht verändert werden.

Klicke ich im Explorer auf die Eigenschaften\Details eines Dokuments,
sehe ich ein Feld "Zuletzt gedruckt". Dieses Feld ist logischerweise
vor dem ersten Druck leer.

Kann man dieses Feld irgendwie mit einem Makro\VBA anpieken?
So nach dem Motto:

Before printing:
If not isnull(Zuletzt Gedruckt) then
Read Date from file
End if

Oder:
If not isnull(Zuletzt Gedruckt) then
Datumsfeld schrreibgeschützt
End If

Wobei ich mir unklar ist, ob das Attribut schreibgeschützt
auch bei einem automatischen Einfügen durch Word wirksam ist.

Ein kleines Beispiel wäre nett.

Gruß
Jürgen

Jürgen Meyer

unread,
Dec 14, 2011, 4:52:34 PM12/14/11
to
On Wed, 14 Dec 2011 17:58:52 +0100, Jürgen Meyer
<juergen....@gmx.de> wrote:

>Ich möchte gerne, dass in Word 2010 das aktuelle Datum nur beim ersten
>Druck automatisch eingefügt wird. Bei einem späteren Ausdruck soll das
>ursprüngliche Datum nicht verändert werden.

So ich habe schon mal angefangen
Läuft aber noch nicht rund

Ich kann aField keinen Wert zuweisen
Gibt immer die Meldung:
Laufzeitfehler 424
Objekt erfoderlich
Wer sieht den Fehler?
Oder bin ich hiermit völlig auf dem Holzweg?

Die merkwürdigen Zeilenumbrüche stammen von meinem Agent.
Ich hoffe, ihr kommt trotzdem damit zurecht

Gruß
Jürgen

Sub Lastprinted()
Dim myRange As Range
Dim aField As Field

If Not IsNull(ActiveDocument.BuiltInDocumentProperties("Last print
date").Value) Then
' Dokument ist schon mal gedruckt worden

Set myRange =
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range

For Each aField In myRange.Fields
If aField.Type = wdFieldSaveDate Then
Stop
'Nun soll geändert werden, funzt aber nicht
aField.Result = ActiveDocument.BuiltInDocumentProperties("Creation
date").Value

'Alternativ:
'afield.Result = ActiveDocument.BuiltInDocumentProperties("Last save
time").Value

Exit For
End If
Next aField
End If
End Sub

Lisa Wilke-Thissen

unread,
Dec 15, 2011, 4:02:47 AM12/15/11
to
Hallo Jürgen,

"Jürgen Meyer" schrieb
> Ich möchte gerne, dass in Word 2010 das
> aktuelle Datum nur beim ersten Druck automatisch
> eingefügt wird. Bei einem späteren Ausdruck soll das
> ursprüngliche Datum nicht verändert werden.

und warum ist ausgerechnet das Datum des ersten Ausdrucks wichtig?
Falls danach Korrekturen am Dokument vorgenommen werden, könnte doch
auch der 2. Druckvorgang relevant sein, oder? Wäre eventuell das
(letzte) Speicherdatum wichtiger? Danach können zig Ausdrucke erfolgen,
ohne dass sich das Speicherdatum ändert.
--
Viele Grüße
Lisa [MS MVP Word]


Jürgen Meyer

unread,
Dec 15, 2011, 6:15:27 AM12/15/11
to
Hallo Lisa,
Die Bedürfnisse sind verschieden.
Auch dein Argument ist richtig.

Ich nenne mal ein Beispiel für meine Sicht:
Du hast vor zwei Jahren mal einen Brief an das Finanzamt geschrieben.
Auf einmal gibt es Unstimmigkeiten und Du benötigst als Nachweis eine
Kopie des Briefes. Wups, ist das aktuelle Datum drin. Das ist ja nicht
beabsichtigt.

Aber ich habe mich da wohl auch etwas verrannt. Man kann ja in der
Vorlage über Schnellbausteine an dieser Stelle ganz einfach ein Feld
"CreateDate" einfügen. Damit ist das Problem ja gelöst.

Trotzdem wüsste ich gerne, warum mein Code auf einen Fehler läuft.

Gruß
Jürgen

Schorsch Mildenberger

unread,
Dec 15, 2011, 11:22:37 AM12/15/11
to
Am 15.12.2011 12:15, schrieb Jürgen Meyer:
> On Thu, 15 Dec 2011 10:02:47 +0100, "Lisa Wilke-Thissen"
> <wilke-...@web.de> wrote:
>
>> Hallo Jürgen,
>>
>> "Jürgen Meyer" schrieb
>>> Ich möchte gerne, dass in Word 2010 das
>>> aktuelle Datum nur beim ersten Druck automatisch
>>> eingefügt wird. Bei einem späteren Ausdruck soll das
>>> ursprüngliche Datum nicht verändert werden.
>>
>> und warum ist ausgerechnet das Datum des ersten Ausdrucks wichtig?
>> Falls danach Korrekturen am Dokument vorgenommen werden, könnte doch
>> auch der 2. Druckvorgang relevant sein, oder? Wäre eventuell das
>> (letzte) Speicherdatum wichtiger? Danach können zig Ausdrucke erfolgen,
>> ohne dass sich das Speicherdatum ändert.
>
> Hallo Lisa,
> Die Bedürfnisse sind verschieden.
> Auch dein Argument ist richtig.
>
> Ich nenne mal ein Beispiel für meine Sicht:
> Du hast vor zwei Jahren mal einen Brief an das Finanzamt geschrieben.
> Auf einmal gibt es Unstimmigkeiten und Du benötigst als Nachweis eine
> Kopie des Briefes. Wups, ist das aktuelle Datum drin. Das ist ja nicht
> beabsichtigt.

für solche Fälle empfiehlt es sich altmodisch einen Ausdruck zu
archivieren, oder wenigstens ein PDF zu erstellen.

Gruß
Schorsch

Jürgen Meyer

unread,
Dec 15, 2011, 5:16:37 PM12/15/11
to
Jo, aber ein zusätzlicher (und vermeidbarer) Arbeitschritt.
Ich stelle mir das gerade mal in einem Büro mit viel Schriftverkehr
vor.

Wie ich aber schon schrieb, habe ich das Problem ja auch schon gelöst.
Bleibt immer noch die Frage, warum der Code nicht funktioniert.

Folgendes liefert korrekte Werte:
Debug.print ActiveDocument.BuiltInDocumentProperties("Creation
date").Value
Debug.print aField.result

Ich kann nun nicht erkennen, warum beim Zurückschreiben plötzlich ein
Objekt, sprich ein "Set" fehlen soll.

VBA-Gurus an die Tasten!

Viele Grüsse
Jürgen

Friedrich Höglmeier

unread,
Dec 21, 2011, 5:52:05 PM12/21/11
to
Hallo Jürgen,

ich habe in meinen Briefgerüsten (die alle schon vor über 10 Jahren
und damit mit relativ alten Word-Versionen erstellt wurden), ein
Datumsfeld an der richtigen Stelle (wie es sich für ein Briefgerüst
gehört) erstellt. Dieses Datumsfeld wird beim Erstellen eines Briefes
aus diesem Briefgerüst mit dem aktuellen Datum gefüllt und dieser
Bookmark wird dann aufgelöst mit dem folgenden AutoNew-Makro:

Sub AutoNew()
'
' AutoNew Makro
' Aktualisiert alle Felder und löscht die Feldverknüpfung des Datums.
' Makro erstellt am 26.02.2001 von Dr. Friedrich Höglmeier
'
Rem Makrobeginn und Fehlerbehandlungsroutine:
On Error GoTo Schluss

Rem Alle Felder aktualisieren
While WordBasic.NextField() = 1
WordBasic.UpdateFields
Wend

If ActiveDocument.Bookmarks.Exists("Datum") = True Then
WordBasic.WW7_EditGoTo Destination:="Datum"
WordBasic.UnlinkFields
End If

Rem Sprungmarke und Makroende:
Schluss:
End Sub

Funktioniert problemlos seit Jahren.

--
Gruß
hoe = Friedrich Höglmeier
Etwaige Tippfehler dürfen ignoriert werden!
0 new messages