Fußzeile: Bei Änderung des Dokumentnamens wird filename in Fußzeile nicht geändert.

Anonym
2011-11-26T18:22:07+00:00

Ich nehme ein Dokument als Vorlage für ein anderes und ändere den Dateinamen. In der Fußzeile hatte ich "Schnellbausteine > Feld > FileName" eingefügt. Im umbenannten Dokument erscheint allerdings noch der FileName der alten Dokuments, was recht unbrauchbar ist. Gibt es da eine Lösung?

Vielen Dank im voraus.

Christl M.

Microsoft 365 und Office | Word | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
Antwort, die vom Frageautor angenommen wurde
Anonym
2011-12-28T21:16:26+00:00

Und ich welchem Moment soll das Makro ausgeführt werden? (Beim öffnen, beim schliessen, manuell?

Und wer ist denn dieser jemand? Soll ich es am 15. mitnehmen?

Gruss

Thomas

...na dann hänge ich die Codezeilen doch hier an. So muss es manuell gestartet werden.

' ---------- ---------- ----------

Option Explicit

Sub AlleFelderAktuialisieren()

Dim rngStoryRange As Word.Range

Dim toc As Word.TableOfContents

Dim tof As Word.TableOfFigures

Dim toa As Word.TableOfAuthorities

'Alle Teile vom Dokument ansprechen

   For Each rngStoryRange In ActiveDocument.StoryRanges

      subFelderAktualiseren rng:=rngStoryRange

      Do While Not (rngStoryRange.NextStoryRange Is Nothing)

         Set rngStoryRange = rngStoryRange.NextStoryRange

         subFelderAktualiseren rng:=rngStoryRange

       Loop

   Next rngStoryRange

'Verzeichnisse aktualisieren

   With ActiveDocument

      For Each toc In .TablesOfContents

         toc.Update

      Next toc

      For Each tof In .TablesOfFigures

         tof.Update

      Next tof

      For Each toa In .TablesOfAuthorities

         toa.Update

      Next toa

   End With

End Sub

Private Sub subFelderAktualiseren( _

   rng As Word.Range)

   rng.Fields.Update

End Sub

' ---------- ---------- ----------

War diese Antwort hilfreich?

0 Kommentare Keine Kommentare
Antwort, die vom Frageautor angenommen wurde
Lisa Wilke-Thissen 90,800 Zuverlässigkeitspunkte Volunteer Moderator
2011-11-27T07:54:15+00:00

Guten Morgen Christl,

ist leider ein Problem seit mehreren Versionen. Du musst das Feld manuell (per F9) aktualisieren oder per Makro jeweils beim Speichern aktualisieren lassen.

Da das Aktualisieren eh recht unterschiedlich erfolgt (manche Felder werden direkt, andere erst beim Wechsel in die Druckvorschau, wieder andere erst beim Drucken aktualisiert), kann es eventuell sinnvoll sein, generell ein Makro zu nutzen, das sämtliche Felder auf einen Schlag aktualisiert.

Viele Grüße

Lisa

War diese Antwort hilfreich?

0 Kommentare Keine Kommentare

29 zusätzliche Antworten

Sortieren nach: Neueste
  1. Anonym
    2012-07-12T16:24:16+00:00

    Hallo Mirko,

    ich habe es noch mal aufgeteilt und umsortiert.

    ERsetze den gesamten Makrotexxt mit folgenden Zeilen:

    Option Explicit

    Sub FileSaveAs()

    AlleFelderaktualisieren

     On Error Resume Next '<-hier

     Dialogs(wdDialogFileSaveAs).Show

     On Error GoTo 0

    AlleFelderaktualisieren

    End Sub

    Sub AlleFelderaktualisieren()

     Dim rngStoryRange As Word.Range

     Dim toc As Word.TableOfContents

     Dim tof As Word.TableOfFigures

     Dim toa As Word.TableOfAuthorities

    'Alle Teile vom Dokument ansprechen

     For Each rngStoryRange In ActiveDocument.StoryRanges

      subFelderAktualiseren rng:=rngStoryRange

      Do While Not (rngStoryRange.NextStoryRange Is Nothing)

        Set rngStoryRange = rngStoryRange.NextStoryRange

        subFelderAktualiseren rng:=rngStoryRange

      Loop

     Next rngStoryRange

    'Verzeichnisse aktualisieren

     With ActiveDocument

      For Each toc In .TablesOfContents

       toc.Update

      Next toc

      For Each tof In .TablesOfFigures

       tof.Update

      Next tof

      For Each toa In .TablesOfAuthorities

       toa.Update

      Next toa

     End With

    End Sub

    Private Sub subFelderAktualiseren( _

     rng As Word.Range)

    rng.Fields.Update

     End Sub

    Dann hast du das Gewünschte.

    Viel Erfolg

    Christian

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2012-07-12T14:50:51+00:00

    Oh - tut mir leid ... das andere Script hatte ich irgendwie völlig übersehen ~~:-(

    Also jetzt funktioniert es schon fast. Wenn ich aber das Dokument "Test01.docx" also "Test02.docx" abspeichere ändert sich der Dateiname in der Fußzeile nicht. Wenn ich jetzt erneut auf "speichern unter" klicke wird der Dateinamen plötzlich aktualisiert. Das blöde ist nur, dass ich i.d.R. ja nur dann auf "Speichern unter" gehe, wenn das Dokument einen neunen Namen bekommen soll.

    Also irgendwie müsste man den "refresh" auf NACH dem Speichern legen. Ginge das?

    Gruß,

    Mirko

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Anonym
    2012-07-12T14:37:03+00:00

    Hallo Mirko,

    nun hast du das falsche Marko erwischt ;-)

    ' ---------- ---------- ----------

    Option Explicit

    Sub FileSaveAs()

    Dim rngStoryRange As Word.Range

    Dim toc As Word.TableOfContents

    Dim tof As Word.TableOfFigures

    Dim toa As Word.TableOfAuthorities

    'Alle Teile vom Dokument ansprechen

    For Each rngStoryRange In ActiveDocument.StoryRanges

    subFelderAktualiseren rng:=rngStoryRange

    Do While Not (rngStoryRange.NextStoryRange Is Nothing)

    Set rngStoryRange = rngStoryRange.NextStoryRange

    subFelderAktualiseren rng:=rngStoryRange

    Loop

    Next rngStoryRange

    'Verzeichnisse aktualisieren

    With ActiveDocument

    For Each toc In .TablesOfContents

    toc.Update

    Next toc

    For Each tof In .TablesOfFigures

    tof.Update

    Next tof

    For Each toa In .TablesOfAuthorities

    toa.Update

    Next toa

    End With

    On Error Resume Next '<-hier

    Dialogs(wdDialogFileSaveAs).Show

    On Error GoTo 0

    End Sub

    Private Sub subFelderAktualiseren( _

    rng As Word.Range)

    rng.Fields.Update

    End Sub

    ' ---------- ---------- ----------

    Gruß

    Christian

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare