Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit Excel-vba in Word 'Seite X von Y' in Fußzeile

Mit Excel-vba in Word 'Seite X von Y' in Fußzeile
04.10.2017 14:36:36
Y'
Hallo,
vorweggesagt, ich verfüge nur über mittelmäßiges vba-Halbwissen :-).
Ich befülle per vba aus Excel ein neues Worddokument mit Inhalten aus einem Tabellenblatt...inkl. Kopf und Fußzeile.
Was mir nicht gelingt ist, in der Fußzeile die Seitenzahl "Seite x von y" einzufügen.
(Dabei möcht ich auf den Zugriffe aus Vorlagen der dotx verzichten)
Ein Makro das in Word selber läuft, macht aber über Excel Probleme
Laufzeitfehler 438 oder 450
Modul 1
---
Public WordApp As Object, WordDoc As Object
----
WordApp.Visible = True
WordApp.Documents.Add 'öffnet neues Dokument
Set WordDoc = WordApp.ActiveDocument
With WordApp.Selection
With .Document
With .ActiveWindow
' .... KOPFZEILEN-DETAIL erspare ich euch und srpinge in die Fußzeile ...
.ActivePane.View.SeekView = wdSeekCurrentPageFooter
.Selection.TypeText Text:="Version:"
.Selection.TypeText Text:=Format(Date, "dd.mm.yyyy") & vbTab
.Selection.TypeText Text:="Seite "
'ab hier kracht es
.Selection.Fields(wdfield).Fields.Add(Range:=Selection.Range, Type:=wdFieldPage) = wdFieldPage
.Selection.TypeText Text:=" von "
'alternativ hatte ich das noch gefunden... mal für die Seitenzahl NumPages
.Selection.Fields.Add Range:=Selection.Range, Text:="NUMPAGES"
.ActivePane.View.SeekView = wdSeekMainDocument
End With
End With
End With
Danke euch!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schau mal hier...
09.10.2017 09:59:24
Lutz
Hallo Case
sorry dass ich mich jetzt erst melde, habe deine Rückmeldung nicht mitbekommen und mich schon gewundert dass kein Feedback kam. Daher habe ich heute eher zufällig noch mal nachgeschaut....
Also erstmal vielen Dank für deine schnelle Antwort. Foren leben ja von Rückmeldungen... :D
Ja, ich konnte es in mein Progrämmchen einbauen und es funktioniert grundsätzlich!
Super Danke
Dennoch hätte ich eine Frage. Womit beeinflusse ich die Positionen ..., wenn ich beispielsweise links das Datum, "Seite X von Y" mittig und rechts einen anderen Text platzieren möchte?
Vielen Dank nochmal
Lutz
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fußzeile in Word mit Excel-VBA: Seitenzahlen „Seite X von Y“ einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Makro:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  2. Initialisiere Word:

    Public WordApp As Object, WordDoc As Object
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents.Add
  3. Wechsel zur Fußzeile:

    With WordDoc
       .ActiveWindow.View.SeekView = 6 'wdSeekCurrentPageFooter
       .Selection.TypeText Text:="Version: " & Format(Date, "dd.mm.yyyy") & vbTab
       .Selection.TypeText Text:="Seite "
  4. Füge die Seitenzahlen ein:

    .Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
    .Selection.TypeText Text:=" von "
    .Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
  5. Wechsel zurück zum Hauptdokument:

    .ActiveWindow.View.SeekView = 0 'wdSeekMainDocument
    End With

Häufige Fehler und Lösungen

  • Laufzeitfehler 438 oder 450:

    • Diese Fehler können auftreten, wenn die Befehle nicht korrekt aufgerufen werden oder die Word-Objekte nicht richtig referenziert sind. Stelle sicher, dass die Word-Referenzbibliothek im VBA-Editor aktiviert ist.
  • Seitenzahlen werden nicht korrekt angezeigt:

    • Überprüfe, ob die Word-Dokumente die richtigen Seitenzahl-Formatierungen verwenden. Manchmal ist es notwendig, das Dokument zu aktualisieren, um die Seitenzahlen korrekt anzuzeigen.

Alternative Methoden

  • Direktes Bearbeiten in Word:

    • Du kannst die Seitenzahlen auch direkt in Word über die Kopf- und Fußzeilen-Optionen hinzufügen, ohne VBA zu verwenden. Gehe dazu zu „Einfügen“ > „Kopfzeile“ oder „Fußzeile“ und wähle die gewünschte Seitenzahlen-Formatierung aus.
  • Nutzung von Vorlagen:

    • Wenn Du auf die Verwendung von VBA verzichten möchtest, kannst Du auch eine Word-Vorlage (.dotx) erstellen, die bereits die gewünschten Seitenzahlen in der Fußzeile enthält.

Praktische Beispiele

  • Beispiel 1: Automatisches Erstellen eines Berichts mit Seitenzahlen

    • Stelle sicher, dass Du die oben genannten Schritte in einem VBA-Makro kombinierst, um einen automatisierten Bericht zu erstellen, der die Fußzeile mit „Seite X von Y“ korrekt ausfüllt.
  • Beispiel 2: Verwendung von Variablen für dynamische Inhalte

    Dim reportDate As String
    reportDate = Format(Date, "dd.mm.yyyy")
    .Selection.TypeText Text:="Bericht vom " & reportDate & vbTab

Tipps für Profis

  • Positionierung in der Fußzeile:

    • Um die Positionen in der Fußzeile anzupassen (z.B. Datum links, Seitenzahlen mittig), kannst Du Tabulatoren einfügen:
      .Selection.ParagraphFormat.TabStops.Add Position:=WordApp.CentimetersToPoints(10), Alignment:=wdAlignTabCenter
  • VBA-Fehlerbehandlung:

    • Implementiere eine Fehlerbehandlung in deinem VBA-Makro, um Laufzeitfehler eleganter abzufangen:
      On Error GoTo ErrorHandler
      ' Dein Code hier
      Exit Sub
      ErrorHandler:
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie füge ich die Seitenzahlen „Seite X von Y“ in Word ein?
Du kannst dies über VBA erledigen, indem Du die Fields.Add-Methode verwendest, um sowohl die aktuelle Seitenzahl als auch die Gesamtseitenzahl einzufügen.

2. Was mache ich, wenn die Seitenzahlen nicht angezeigt werden?
Stelle sicher, dass die Fußzeile korrekt aktiviert ist und aktualisiere dein Word-Dokument, um die neuesten Änderungen anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige