2k Aufrufe
Gefragt in Textverarbeitung von ahorn38 Experte (3.3k Punkte)
Hallo,

ich habe eine word-Datei die aus mehreren Seiten mit identischem Aufbau besteht. (vormals Serienbrief)
Ich möchte aus der Adresse jeweils den Namen "auslesen" und in einer gesonderten Datei (Excel-Sheet) speichern.
Der Name steht auf jeder Seite an gleicher Position/Zeile (jeweils unter der Anrede "Herr" oder "Frau").
Ich bin in VBA allerdings absoluter Neuling, so dass ich über die Makro-Aufzeichnung auch nicht weitergekommen bin.
Hat jemand einen Tipp, wie ich mein Problem angehen kann? Danke für jeden Hnweis!
VG A.

14 Antworten

0 Punkte
Beantwortet von
Es kann natürlich sein, dass bei dir jede Person über
Nachbearbeitung ihren ganz individuellen Text bekommen hat. In
diesem Fall kommen die Seitenzeilen auch durcheinander und der
eben gepostete Code ist sinnlos. Dann gibt es noch eine Andere
Möglichkeit:

Wenn das Seriendokument so wie dein Beispiel aus sieben Feldern
pro Person besteht, kannst du auch diesen Code verwenden:

Sub NamenAuslesen()

Dim exl As Object

vn = 2 'Feld pro Seite, das den Vornamen enthält
nn = 3 'Feld pro Seite, das den Nachnamen enthält
fc = 7 'Anzahl Felder pro Seite
Blatt = "Tabelle1" 'ExcelBlatt in dem die Daten erscheinen sollen.


'Erstellt eine neues ExcelFenster
Set exl = CreateObject("excel.application")
exl.Visible = True

'Erstellt im ExcelFenster eine neue Arbeitsmappe
'wb ist hier die Variable für das Workbook-Objekt
Set wb = exl.workbooks.Add
wb.sheets(Blatt).Cells(1, 1) = "Vorname"
wb.sheets(Blatt).Cells(1, 2) = "Nachname"

'Liest die Namen aus Word aus.
'Fields sind die Seriendruckfelder, die z.B. den Namen enthalten
For i = vn To ActiveDocument.Fields.Count Step fc
k = k + 1

Vorname = ActiveDocument.Fields(i).Result
Nachname = ActiveDocument.Fields(i + 1).Result

wb.sheets(Blatt).Cells(k + 1, 1) = Vorname
wb.sheets(Blatt).Cells(k + 1, 2) = Nachname

Next i

End Sub


Du siehst, es gibt viele Möglichkeiten. Es ist halt nur immer schwer
für einen Außenstehenden, die richtige zu finden, wenn man die
Basisdatei nicht kennt.

Spiel einfach mal ein wenig mit den Eigenschaften im Word rum.
Ähnlich wie in Excel, sind auch hier viele Elemente in Collections
gruppiert (nur eine Pages-Collection hab ich auf die Schnelle leider
nicht gefunden).

Gruß. Mr. K.
0 Punkte
Beantwortet von
Hier noch ein kleiner Tipp am Rande:

sollten dich die Felder mal stören (z.B. weil Zeilenumbrüche Probleme
bereiten oder das Datum beim Öffnen immer neu berechnet wird)
kannst du zunächst mit STRG+A alles markieren und dann mit
STRG+UMSCHALT+F9 den Inhalt der Felder in Fließtext umwandeln.
Vorausgesetzt, das Dokument ist nicht gesperrt.
Ein nützlicher Trick den kaum jemand kennt. Probiers aus. Du wirst es
lieben. :-)

Mr. K.
0 Punkte
Beantwortet von
Hallo Mr.K,

Sorry für meine späte Reaktion! Habe alle deine Tipps mal probiert und
bin zum Ziel gekommen! Vielen Dank. Wie immer habe ich eine ganze
Menge dazugelernt!
VG A.
0 Punkte
Beantwortet von
Freut mich, dass es geklappt hat. :-)
...