Word XP: Mit Hilfe von Textmarken Datum berechnen

28/07/2009 - 15:01 von Ingrid Kutsche | Report spam
Liebe Leute,

meine Kollegin möchte für Vertragstexte, die jeweils nach einem Jahr
erneuert werden müssen, folgenden Service: an einer Stelle im Word-
Dokument tràgt sie das Datum des Vertragsabschlusses ein. An einer
anderen soll das entsprechende Datum des nàchsten Jahres eingetragen
werden.

In meiner Kopie der Word-FAQ von Silvia Widmer/Rene Probst fand ich
zum Rechnen mit Datumsangaben folgenden Code

Sub TMTageBerechnenDynamisch()
Dim oDoc As Document
Set oDoc = ActiveDocument
Dim Marke As Range
Ein = oDoc.Bookmarks("Eingegangen").Range.Text
Aus = oDoc.Bookmarks("Erledigt").Range.Text
Set Marke = oDoc.Bookmarks("Dauer").Range
If IsDate(Ein) And IsDate(Aus) Then
Marke.Text = DateDiff("d", DateValue(Ein), DateValue(Aus))
Else
Marke.Text = "Fehler!"
End If
oDoc.Bookmarks.Add Name:="Dauer", Range:=Marke
End Sub

Den hab ich für meine Zwecke folgendermaßen abgewandelt:

Sub TMTageAddieren()
Dim oDoc As Document
Set oDoc = ActiveDocument
Dim Marke As Range
Ein = oDoc.Bookmarks("Eingegangen").Range.Text

Set Marke = oDoc.Bookmarks("Zahlungsziel").Range
If IsDate(Ein) Then
Marke.Text = DateValue(Ein) + 365
Else
Marke.Text = "Fehler!"
End If
oDoc.Bookmarks.Add Name:="Dauer", Range:=Marke
End Sub

Aber so ganz passt das noch nicht:

Bei der Datumsanzeige in der Textmarke "Zahlungsziel" fehlt die letzte
Ziffer des Jahres,
und die Textmarke bleibt nicht erhalten, sondern wird überschrieben.

Was muss ich noch àndern?

Danke euch und viele Grüße

Ingrid
 

Lesen sie die antworten

#1 Ingrid Kutsche
28/07/2009 - 15:08 | Warnen spam
Ich muss mal die Ingrid machen (steht mir ja auch zu *grien*):

Unmittelbar nach Abschicken der Frage sah ich, warum die Textmarke
überschrieben wurde. Ich hab die letzte Zeile des Codes nun geàndert
in oDoc.Bookmarks.Add Name:="Zahlungsziel", Range:=Marke.

Dieses Problem ist also erledigt. Nun brauch ich nur noch Hilfe für
das Format des Datums.

Danke euch! Ingrid

On 28 Jul., 15:01, Ingrid Kutsche wrote:
Liebe Leute,

meine Kollegin möchte für Vertragstexte,  die jeweils nach einem Jahr
erneuert werden müssen, folgenden Service: an einer Stelle im Word-
Dokument tràgt sie das Datum des Vertragsabschlusses ein. An einer
anderen soll das entsprechende Datum des nàchsten Jahres eingetragen
werden.

In meiner Kopie der Word-FAQ von Silvia Widmer/Rene Probst fand ich
zum Rechnen mit Datumsangaben folgenden Code

Sub TMTageBerechnenDynamisch()
  Dim oDoc As Document
  Set oDoc = ActiveDocument
  Dim Marke As Range
  Ein = oDoc.Bookmarks("Eingegangen").Range.Text
  Aus = oDoc.Bookmarks("Erledigt").Range.Text
  Set Marke = oDoc.Bookmarks("Dauer").Range
  If IsDate(Ein) And IsDate(Aus) Then
    Marke.Text = DateDiff("d", DateValue(Ein), DateValue(Aus))
  Else
    Marke.Text = "Fehler!"
  End If
  oDoc.Bookmarks.Add Name:="Dauer", Range:=Marke
End Sub

Den hab ich für meine Zwecke folgendermaßen abgewandelt:

Sub TMTageAddieren()
  Dim oDoc As Document
  Set oDoc = ActiveDocument
  Dim Marke As Range
  Ein = oDoc.Bookmarks("Eingegangen").Range.Text

  Set Marke = oDoc.Bookmarks("Zahlungsziel").Range
  If IsDate(Ein) Then
    Marke.Text = DateValue(Ein) + 365
  Else
    Marke.Text = "Fehler!"
  End If
  oDoc.Bookmarks.Add Name:="Dauer", Range:=Marke
End Sub

Aber so ganz passt das noch nicht:

Bei der Datumsanzeige in der Textmarke "Zahlungsziel" fehlt die letzte
Ziffer des Jahres,
und die Textmarke bleibt nicht erhalten, sondern wird überschrieben.

Was muss ich noch àndern?

Danke euch und viele Grüße

Ingrid

Ähnliche fragen