Word doc splitten und einzeln abspeichern

Hallo Zusammen,

ich habe ein word doc mit ca. 1000 Seiten (in word 2003). Auf jeder dieser Seiten befindet sich in der ersten Zeile eine nummer bsp: 221054861 und anschließend Text.

Nun möchte ich dieses Dokument splitten und dann in ca. 1000 einzelne docs abspeichern…Diese docs sollen unter der Nummer in der ersten Zeile abgespeichert werden…

wie geht das?!

Ein paar Makros zum splitten habe ich schon, funktioniert auch alles prima, nur keines speichert die docs mit den unterschiedlichen Nummern ab :confused:

Lieben Dank schonmal!

ich habe ein word doc mit ca. 1000 Seiten (in word 2003). Auf
jeder dieser Seiten befindet sich in der ersten Zeile eine
nummer bsp: 221054861 und anschließend Text.

Nun möchte ich dieses Dokument splitten und dann in ca. 1000
einzelne docs abspeichern…Diese docs sollen unter der
Nummer in der ersten Zeile abgespeichert werden…

Hallo D88,

nachfolgenden Code in ein Standardmodul, Modul1 o.ä.
Der Code erwartet die Nummer ganz oben pro Seite, gefolgt von einem Leerzeichen.
Urcode stammt von dem Link zur Probstseite in der Brettbeschreibung, ich hab nur etwas angepasst.
Pfad mußte dir anpassen.

Hat die 88 eine politische Bedeutung für dich?
Wenn ja :frowning: dann kannste völlig vergessen daß ich dir nochmal helfe.

Gruß
Reinhard

Option Explicit

Sub JedeSeiteEinNeuesDokumentOhneKopfUndFusszeilen()
Dim oDoc As Document, nDoc As Document, oRange As Range
Dim i As Integer, s As Integer, strName As String
Const Pfad As String = "C:\Test\"
Set oDoc = ThisDocument
For i = 1 To oDoc.ComputeStatistics(wdStatisticPages)
 oDoc.Activate
 Selection.GoTo What:=wdGoToPage, Name:=i
 Set oRange = Selection.Bookmarks("\Page").Range
 strName = Left(oRange.Text, InStr(oRange.Text, " ") - 1)
 If strName = "" Or Not IsNumeric(strName) Then
 MsgBox "Keine Nummer gefunden"
 Exit Sub
 End If
 If Right(oRange.Text, 1) = Chr(12) Then
 oRange.SetRange Start:=oRange.Start, End:=oRange.End - 1
 End If
 Set nDoc = Documents.Add(Template:=ThisDocument.AttachedTemplate.FullName)
 nDoc.Content.FormattedText = oRange.FormattedText
 s = nDoc.ComputeStatistics(wdStatisticPages)
 'Wenn eine 2. Seite mit einem einzigen leeren Absatz entstanden ist
 If s = 2 And nDoc.Paragraphs.Last.Range.Text = Chr(13) Then
 nDoc.Paragraphs.Last.Range.Delete
 End If
 nDoc.SaveAs FileName:=Pfad & strName, AddToRecentFiles:=False
 nDoc.Close
Next i
End Sub

Hallo Reinhard,

vielen Dank für deine Hilfe! Werde es direkt ausprobieren…

Politische Bedeutung? 88 ist mein Geburtsjahr…Meinst du, ich sollte meinen Namen ändern? :confused:

Viele Grüße,
SmileyD - ohne Zahl

Hallo Reinhard,

leider bin ich ein kompletter Neuling in dem Thema. Hier klappt nichts :smiley:

Es erscheint ein Laufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable nicht festgelegt.

In den Texten befindet sich auch keine Leerstellen nach der Zahl, sondern ein Umbruch. Leider kann ich das nicht händisch ändern, dann könnte ich ja direkt alles einzeln abspeichern :wink:

Würdest du mir hier bitte helfen? Vielen Dank schon mal!!!

LG, SmileyD

Hallo SmileyD,

Es erscheint ein Laufzeitfehler ‚91‘: Objektvariable oder
With-Blockvariable nicht festgelegt.

in welcher Codezeile denn?
Ich hatte den Code getestet mit Win2000.

In den Texten befindet sich auch keine Leerstellen nach der
Zahl, sondern ein Umbruch.

Es gibt zeilenumbruch, Seitenumbruch und was weiß ich was da Word noch für Umbrüche kennt.

Mache eine Kopie deiner Mappe, lösche alle Seiten bis auf die 3-5 ersten Seiten.
Ggfs. den Text anonymisieren.
=rand()
kennst du? Wenn nicht gib das mal anfangs einer Zeile ein und drücke Enter. Dann hast du anonymen Text, kannst das ja mehrmals machen.
Belanglosen Text kannste ja stehen lassen.

Wichtig für mich ist einzig, daß die einzelnen Textlängen pro Seite, alle Seitenumbrüche und jeweils die oberste Zeile pro Seite identisch ist wie im Original.

Diese neue doc dann hochladen mit file-upload, s. FAQ:2606

Gruß
Reinhard

Hallo Reinhard,

hier der link zum doc.

https://rapidshare.com/files/1112286019/TEST-VERSION…

Es sind allerdings immer unterschiedliche Textlängen…

Es erscheint ein Laufzeitfehler ‚91‘: Objektvariable oder
With-Blockvariable nicht festgelegt in Zeile 8. Habe Win xp, Version 2002.

Vielen Dank für deine Mühe! Du bist klasse :smile:
Viele Grüße

https://rapidshare.com/files/1112286019/TEST-VERSION…

Hallo SmileyD,

sorry, bei rapidshare kriege ich nix runtergeladen, fileupload wär mir lieber.

Gruß
Reinhard

Hallo Reinhard,

http://www.file-upload.net/download-3442134/TEST-VER…

LG

http://www.file-upload.net/download-3442134/TEST-VER…

Hallo SmileyD,

nachfolgenden Code in ein Standardmodul, Modul1 o.ä.

Gruß
Reinhard

Option Explicit

Sub JedeSeiteEinNeuesDokumentOhneKopfUndFusszeilen()
Dim oDoc As Document, nDoc As Document, oRange As Range
Dim i As Integer, s As Integer, strName As String
Const Pfad As String = "C:\Test\"
On Error GoTo hell
Set oDoc = ThisDocument
Application.ScreenUpdating = False
For i = 1 To oDoc.ComputeStatistics(wdStatisticPages)
 oDoc.Activate
 Selection.GoTo What:=wdGoToPage, Name:=i
 Set oRange = Selection.Bookmarks("\Page").Range
 strName = Left(oRange.Text, InStr(oRange.Text, Chr(13)) - 1)
 If strName = "" Or Not IsNumeric(strName) Then
 MsgBox "Keine Nummer gefunden"
 Exit Sub
 End If
 If Right(oRange.Text, 1) = Chr(12) Then
 oRange.SetRange Start:=oRange.Start, End:=oRange.End - 1
 End If
 Set nDoc = Documents.Add(Template:=ThisDocument.AttachedTemplate.FullName)
 nDoc.Content.FormattedText = oRange.FormattedText
 s = nDoc.ComputeStatistics(wdStatisticPages)
 'Wenn eine 2. Seite mit einem einzigen leeren Absatz entstanden ist
 If s = 2 And nDoc.Paragraphs.Last.Range.Text = Chr(13) Then
 nDoc.Paragraphs.Last.Range.Delete
 End If
 nDoc.SaveAs FileName:=Pfad & strName, AddToRecentFiles:=False
 nDoc.Close
Next i
Application.ScreenUpdating = True
hell:
If Err.Number 0 Then MsgBox Err.Number & vbCr & Err.Description
End Sub

Hallo Reinhard,

also das klappt nicht. Es erscheint wieder eine Fehlermeldung 91: Objektvariable oder With-Blockvariable nicht festgelegt.

LG

also das klappt nicht. Es erscheint wieder eine Fehlermeldung
91: Objektvariable oder With-Blockvariable nicht festgelegt.

Hallo SmileyD,

ich habe Word2000, in deiner Doc gehe ich im Vba-EDitor in das Modul1, stelle mich mit dem Curser in den Code herein und drücke F5, dann funktioniert der Code wie er soll ohne deine Fehlermeldung.

http://www.file-upload.net/download-3442197/TEST-VER…

Gruß
Reinhard

Hallo Reinhard,

also wenn ich mein eigenes doc downloade, klappt es super :smile: vielen Dank!
Wenn ich es jedoch mit einer größeren Datei versuche, erscheint wieder Fehler 91…

Hat das etwas mit meinem Speicherpfad zu tun oder so? Ich habe alle Dateien im gleichen Ordner…also ich kann mir das nicht erklären.

Hast du noch einen Tipp für mich?

DANKE!

Hallo SmileyD,

also wenn ich mein eigenes doc downloade, klappt es super :smile:

na also, ein Fortschritt :smile:

Wenn ich es jedoch mit einer größeren Datei versuche,
erscheint wieder Fehler 91…

Kommt der Fehler schon bei der allerersten Seite?

Ersetze mal die vorletzte Zeile im Code durch

If Err.Number 0 Then MsgBox Err.Number & vbCr & Err.Description & vbCr & i

i zeigt dir die Seitennummer.

Hast du noch einen Tipp für mich?

Die gehen mir langsam aus, denn bei mir klappt es ja.
In letzter Konsequent bräuchte ich dann die Doc wo es nicht funktioniert.

Gruß
Reinhard

Hallo Reinhard,

irgendwie hat es jetzt doch funktioniert…frag mich nicht wie :smiley:

Vielen Dank für dein Durchhaltevermögen und deine Hilfe.

Gruß
SmileyD