[Office] [Erledigt] Word: Mehrere Dokumente zusammenführen

Astrominus

Administrator
Teammitglied
[Erledigt] Word: Mehrere Dokumente zusammenführen

Ich habe hier mehrere Word-Dokumente die ich zu einem einzigen Dokument zusammenführen möchte und zwar so, das jedes Einzel-Dokument eine Seite im Zusammengeführten Dokument ergibt.

Scheinbar bringt Word diese Funktion nicht mit, oder ich habe sie ganz einfach nicht gefunden.

Gibt es dafür evtl. ein Tool?
 
Ich habe auch lange danach gesucht. Gefunden habe ich dazu nur diese Seite, da muss man sich allerdings durcharbeiten, wenn man nicht unbedingt mit Copy & Paste arbeiten möchte. :)

Mehrere Word-Dokumente zu einer grossen Datei zusammenführen

Wenn es nicht zu viele Dokumente sind kann man das eben auch mit
Einfügen - Datei erledigen.

Andere Lösung wären Makros, wobei zu beachten ist, dass die Dokumente kein Passwort zum Öffnen benötigen und keine Automationsroutinen enthalten.
 
Zuletzt bearbeitet:
Danke erstmal.

Mit "Datei einfügen" habe ich schon experimentiert, das geht deshalb nicht, weil das jeweilige Dokument immer ab Cursorposition eingefügt wird.

Daher verschiebt sich das Ganze nach oben.
Mann müsste also immer zuerst einen Seitenumbruch erzwingen.

Ein Makro zu schreiben habe ich auch schon versucht, habe es aber auf die Schnelle nicht hinbekommen, da ich ja eine Stapelverarbeitung haben möchte.

Da es sehr viele Einzel-Dokumente sind, wäre mir das von Hand zu machen doch etwas mühsam.
 
Eben nochmal gesucht und das hier gefunden.

von Silvia Widmer

1. Stelle sicher, dass das Verzeichnis nur die gewünschten Word-Dokumente
enthält

2. Stelle sicher, dass diese Dokumente kein Passwort zum Öffnen benötigen

3. Stelle sicher, dass diese Dokumente keine Automationsroutinen enthalten

4. Erstelle ein neues Word-Dokument in einem anderen Verzeichnis als dieses
mit dem Dateien, welche zu "mergen" sind

5. Kopiere folgende Routine im VBA-Editor in ein neues Modul dieses neu
erstellten Dokumentes

6. Passe im Kopf des Codes die Konstante mit dem Namen "Verzeichnis" an

7. Lass das Makro ausführen

Gruss
Silvia Widmer

---------- Bisskante

Private Const Verzeichnis = "C:\Eigene Dateien"
Private Const Filter = "*.doc"

Sub SuchenErsetzenGanzesVerzeichnis()
Dim oDoc As Document, oRange As Range
With Application.FileSearch
.LookIn = Verzeichnis
.FileName = Filter
.Execute SortBy:=msoSortByFileName
Anzahl = .FoundFiles.Count
Application.ScreenUpdating = False
i = 0
For Each aDoc In .FoundFiles
i = i + 1
If i = 1 Then
Set oDoc = Documents.Open(FileName:=aDoc)
Else
Set oRange = oDoc.Content
oRange.SetRange Start:=oRange.End, End:=oRange.End
oRange.InsertBreak Type:=wdSectionBreakNextPage
oRange.InsertFile FileName:=aDoc
End If
StatusBar = Anzahl & " Dokumente verarbeitet..bitte warten."
DoEvents
Next
End With
StatusBar = Anzahl & " Dokumente verarbeitet. - Ende!"
DoEvents
End Sub
Quelle


Ich habe das mal eben getestet. Hat geklappt, wobei jedes Dokument auf einer neuen Seite begonnen wurde. :) Eventuell hilft dir das weiter.
 
hexxxlein, nutzt du auch OpenOffice?
Gilt es auch für diese *.ODT, könntest du es mal bitte testen?

Bislang ist mein Weg immer der, daß ich jede *.ODT drucke
und dann die PDF zusammenbringe.
_____________________
 
Nutze kein OO aber mal eben zum Testen schnell OO geladen und installiert. Scheint aber mit dieser Vorlage nicht zu funktionieren. Habe die Testdateien als "odt" sowohl als "doc" gespeichert.
Ich bekomme als Meldung "Basic Syntaxfehler" für "Document" und "Range" und zwar in dieser Zeile:
"Dim oDoc As Document, oRange As Range"
Wenn man das anpasst, täte das sicherlich funktionieren. Sicher bin ich mir aber nicht. :unsure:
 
Danke, daß du es mal installiert hast, aber in deinem Zitat
steht doch die definierte Endung DOC, die man auch erst
anpassen müßte.
Und bevor ich mich daran versuche, habe ich gedacht, daß
andere das besser können, zumal sie schon Efrolg bei den DOC
verbuchen konnten.

Wie heißt der VBA-Editor in OO?
_____________________
 
Der Fehler könnte daran liegen, das hexxxlein *doc-Dateien in OO übernommen hat, anstatt neue *odt zu erstellen, um dann zu versuchen, diese zusammen zu führen. Bin mir aber auch nicht sicher.

Wo sind die Office und OO Experten?
 
Nein! Wenn der Befehl sich auf *.DOC bezieht, dann helfen keine *.ODT.
Zur Zeit weiß ich nicht einmal, wo ich diese Zeilen einfügen muß, so daß
ich gar nicht selbst testen kann.
 
Nein matsch, will damit sagen, das hexxlein den falschen Weg gegangen ist, oder auch nicht.
Ich sehe hier das Problem darin, das ein ähnlicher Weg gegangen werden kann, wenn reine *odt zusammengeführt werden und keine *doc die zu *odt konvertiert wurden. Aber trotzdem kann der Weg in OO ein anderer sein.

Hoffe nur, ich habe mich verständlich ausgedrückt.
 
Nein ich habe nicht die Word Dateien in OO übernommen, da OO wieder deinstalliert wird.

Ich schrieb doch, getestet mit odt und doc (in OO erstellt und als odt sowohl auch als doc gespeichert). Natürlich habe ich dementsprechend "Private Const Filter = "*.doc" auch angepasst. Nichts wurde von odt in doc konvertiert oder anders rum. Für ein Test eigentlich logisch oder? :D

Extras - Makros - Makros verwalten - OpenOffice.org Basic - Meine Makros - Standard - Modul1 - bearbeiten

Grüner Pfeil - Ausführen

Wähle ich etwas anderes aus, dann mault OO rum, ich soll JRE (Java Laufzeitumgebung) installieren. Nö!
 
Zuletzt bearbeitet:
Der Weg scheint richtig zu sein, aber ich bekommen auch einen
Fehler angezeigt. Java habe ich, deswegen wohl der nächste.

Fehler:
BASIC_Syntaxfehler.
Private innerhalb einer Prozedur unzulässig.

Sub Main

Private Const Verzeichnis = "C:\neu"
Private Const Filter = "*.odt"

Sub SuchenErsetzenGanzesVerzeichnis()
Dim oodt As Document, oRange As Range
With Application.FileSearch
.LookIn = Verzeichnis
.FileName = Filter
.Execute SortBy:=msoSortByFileName
Anzahl = .FoundFiles.Count
Application.ScreenUpdating = False
i = 0
For Each aodt In .FoundFiles
i = i + 1
If i = 1 Then
Set oodt = Documents.Open(FileName:=aodt)
Else
Set oRange = oodt.Content
oRange.SetRange Start:=oRange.End, End:=oRange.End
oRange.InsertBreak Type:=wdSectionBreakNextPage
oRange.InsertFile FileName:=aodt
End If
StatusBar = Anzahl & " Dokumente verarbeitet..bitte warten."
DoEvents
Next
End With
StatusBar = Anzahl & " Dokumente verarbeitet. - Ende!"
DoEvents
End Sub
 
hilft das auch?
http://openoffice.delta-c.de/buch/inhalt.shtml
Jeder kocht sein eigenes Süppchen

Sie würden gern mit der Versionsverwaltung arbeiten, aber Ihre Mitstreiter haben stattdessen sicherheitshalber alle Änderungen als neues Dokument gespeichert? Kein Problem, denn dafür gibt es die Funktion Bearbeiten / Änderungen / Dokument zusammenführen. Bedingung ist allerdings, dass die Änderungen in der Kopie bei aktiver Überarbeitungsfunktion durchgeführt wurden, während das Originaldokument im Originalzustand verblieb. Sind diese Voraussetzungen erfüllt, wählen Sie die Option Dokument zusammenführen und anschließend die Datei mit den hinterlegten Änderungen. Wie Abbildung 9 zeigt, wird wieder die Überarbeitungsfunktion aktiv, und Sie können wählen, ob Sie die Änderungen annehmen oder nicht.
 
Das VBA-Skript von Silvia Wilmer ist nett - aber ausbaufähig... :D

Wer die Suche verfeinern will oder die Sortierungs-Kriterien ändern will,
sollte sich die Suchroutine in folgendem Skript mal ansehen -> TippsTricks-Dateisuche.bas

Ist zwar für MS Access, sollte aber in Word auch funktionieren...
 
Oben