Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Seitennumer aus Word-Datei

Seitennumer aus Word-Datei
10.01.2009 22:05:00
Walter
Ich begrüße alle Forumsteilnehmer sehr herzlich; bin zum ersten Mal dabei.
Nun zu meinem Problem (trotz Recherchen keine Lösung gefunden):
In einem Excel-Makro gelingt es mir nicht die aktuelle Seite aus einem Word-Dokument herauszulesen.
Hintergrund:
Der Inhalt der Word-Datei soll per Excel-Makro in ein Tabellenblatt übertragen werden.
Das Besondere an der Word-Datei ist, dass der Text in lauter Positionsrahmen untergebracht ist. Deshalb möchte ich von jedem Positionsrahmen seine Lageparameter und seinen Inhalt in einer Tabelle abspeichern, um dann diese weiter zu bearbeiten. Zu den Lageparametern gehört auch die Seitennummer.
Hier mein XL-Makro:

Sub test_XL()
Dim sPfad As String, Dat As String
Dim appWord As Object
Dim i As Long
Dim NPr As Long
Dim wSeite As Variant
Dim pr As Object
Dim b As Integer
Dim ph As Long, pv As Long
Dim inh As String
i = 1
wSeite = 0
'WordObject erstellen
Set appWord = CreateObject("Word.Application")
'Pfad
sPfad = "D:\Listen\"
Dat = "EL_test2.doc"
'Worddocument öffnen
appWord.Documents.Open sPfad & Dat
For Each pr In appWord.Documents(Dat).Frames
pr.Select
wSeite = Selection.Information(wdActiveEndPageNumber)
i = i + 1
pv = pr.VerticalPosition
ph = pr.HorizontalPosition
b = pr.Width
inh = pr.Range
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 1) = wSeite
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 2) = i - 1
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 3) = pv
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 4) = ph
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 5) = b
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 6) = inh
Next
'Worddocument schliessen
appWord.activeDocument.Close savechanges:=False
Set appWord = Nothing
End Sub


In wSeite soll die aktuelle Seite des Word-Dokumentes in der sich der Positionsrahmen befindet gespeichert werden, doch hier erscheint eine Fehlermeldung, z.B.:
Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Varianten in der Syntax der Zuweisung helfen auch nicht. Als Word-Makro mit ähnlichem Aufbau läuft die Zuweisung einwandfrei. Ich vermute, dass Excel-VBA mit der Word-VBA Variable wdActiveEndPageNumber nichts anfangen kann.
Ich benötige jedoch dies alles im Excel-Makro, da die Übertragung der Daten in die Tabelle nur der erste Schritt von mehreren ist, und die komplette Verarbeitung in einem Zuge durchgeführt werden soll.
Zum besseren Verständnis habe ich eine vereinfachte Word-Datei mit hochgeladen (https://www.herber.de/bbs/user/58265.doc).
Kann jemand helfen?
Vielen Dank im Voraus
Walter Dix

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seitennumer aus Word-Datei
11.01.2009 01:24:43
Josef
Hallo Walter,
ohne mir jetzt die Datei herunterzuladen oder den Code zu probieren.
Verwende doch mal den hinter "wdActiveEndPageNumber" stehenden Wert im Code.

wSeite = Selection.Information(3)


Gruß Sepp

AW: Seitennumer aus Word-Datei
11.01.2009 13:47:00
Walter
Hallo Sepp,
Vielen Dank für den Tipp, aber nach wie vor erhalte ich Laufzeitfehler '438'.
Weiterhin habe ich festgestellt, daß meine doc-Datei nicht erfolgreich hochgeladen war. Deshalb hier noch einmal einen link dazu, falls erforderlich:
https://www.herber.de/bbs/user/58283.doc
Gruß
Walter
Anzeige
AW: Seitennumer aus Word-Datei
11.01.2009 13:46:00
Ewald
Hallo Walter,
1. Es ist egal, ob man die Konstante "(wdActiveEndPageNumber)" oder den Index "(3)" wie es Josef meint, eingibt.
2. probier mal folgendes:
wSeite = appWord.Documents(Dat).ActiveWindow.Selection.Information(3)
3. Falls Dein "test_XL" der komplette Code ist, wird Dein Rechner irgendwann überlaufen. Du schliesest zwar die Datei "EL_test2.doc", aber Word ist immer noch geladen (siehe im Taskmanager-Prozesse).
Beende auch im Code Word:
appWord.ActiveDocument.Close savechanges:=False
appWord.Quit
Set appWord = Nothing
Sollte meine Idee nicht funktionieren, mache im Excel-Visualbasic über "Extras-Verweise auf Microsoft-Office-Word" oder ähnlich ein Häkchen
Gruss Ewald
Anzeige
AW: Seitennumer aus Word-Datei
11.01.2009 13:50:14
Walter
Hallo Ewald,
Vielen Dank für deine Vorschläge. Werde sie gleich ausprobieren.
Gruß
Walter
AW: Seitennumer aus Word-Datei
11.01.2009 14:31:00
Walter
Hallo Ewald, hallo Sepp,
Jetzt funktionierts einwandfrei. 1000 Dank!
1. Die Zuweisung der Seitennummer (wSeite = appWord.Documents(Dat).ActiveWindow.Selection.Information(3) ) erfolgt mit dem Index.
2. Erst bei Aktivierung des Word Objektkataloges über Extras Verweise geht's auch mit dem Variablennamen wdActiveEndPageNumber.
3. Word schließe ich nun ebenfalls am Ende
Problem gelöst.
Wünsche Euch weiterhin einen erfolgreichen Tag
Gruß
Walter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige