Microsoft Excel

Herbers Excel/VBA-Archiv

Word, Text finden, Seite kopieren


Betrifft: Word, Text finden, Seite kopieren von: Thomas
Geschrieben am: 04.07.2017 08:53:39

Guten morgen zusammen,

ich weiß dass das hier ein Excel Forum ist, aber ich bin mir sicher dass ihr mir bei der folgenden Frage bestimmt auch helfen könnt :)

Ich habe ein Word Datei, mit ca 500 Seiten, auf jeder Seite habe ich bestimmte Name die sich auf verschiedenen Seiten wiederholen.

Jetzt muss ich manuell alle Seiten mit z.B. Name "Mr.X" kopieren und in eine separate Word Datei speichern, mit dem selben Format etc.

Meine Frage:

Wie kann ich jede Seite nach Mr.X suchen ? ( das sollte ich noch hinbekommen )
Wenn Mr.X gefunden ist, nur diese Seite kopieren und in das Dokument "Mr.X" einfügen.
Nächster Mr.X gefunden, wieder in das Dokument einfügen....

Danach Mr.Y... Mr.Z.... und so weiter

Hab 0 Erfahrung was VBA in Word angeht, in Excel eher Anfänger, deshalb wäre ich über jede Antwort froh :)

Vielen dank.

  

Betrifft: AW: dazu ... von: ... neopa C
Geschrieben am: 04.07.2017 08:59:16

Hallo Thomas,

... Du bist hier in einem EXCEL-Forum, solltest Deine Frage aber wohl besser in einem einschlägigen WORD-VBA-Forum stellen.

Gruß Werner
.. , - ...


  

Betrifft: AW: Word, Text finden, Seite kopieren von: JoWE
Geschrieben am: 04.07.2017 11:14:54

Hallo Thomas,

da hat der gute Werner natürlich völlig Recht.
Aber sofern Du eine Liste mit den Namen (der zu füllenden Dateien) in einer Excel-Arbeitsmappe vorliegen hättest, wäre der Bogen zu Excel und damit zu diesem Forum schon geschlagen :-)
Dann könnte der wenig aufwändige Code aus dem folgenden Beispiel evtl. helfen.
Voraussetzung war:
-die Worddatei (die auch den Code enthält) mit 500 Seiten Text (meine Test.doc hatte nur 5 Seiten).
-Je Seite befindet sich einer der Namen aus dem Array.
-Vorbereitete Dokumente mit den dazu passenden Namen im Zielordner sind vorhanden.

Option Explicit

'Ein Array global dimensionieren;
'hier im Beispiel für nur 3 Elemente
Global myArray(1 To 3) As String

Sub fillArray()

    'Füllen des Array mit den Suchnamen
    'die Daten könnte natürlich aus einer Excel-Arbeitsmappe kommen
    'hier im Beispiel wird das Array jedoch "analog" gefüllt
    
    myArray(1) = "Herr Müller" 'Datei 'Herr Müller.doc' ist schon vorhanden
    myArray(2) = "Frau Meier" 'dito
    myArray(3) = "Herr Schmidt" 'dito

End Sub


Sub test()

    'Makro zum Füllen des Arrays starten
    Call fillArray
    
    'Variable dimensionieren
    Dim myRange As Range
    Dim n As Long
    Dim pageRange As Range
    
    'Der Inhalt des gesamten Dokument wir zum zu durchsuchenden Bereich erklärt
    Set myRange = ActiveDocument.Content
    
    'Schleife starten um alle Namen aus dem Array im Dokument zu finden
    For n = LBound(myArray) To UBound(myArray)
        'Suche nach dem Namen starten
        myRange.Find.Execute FindText:=myArray(n), Forward:=True
        'die ganze Seite mit dem gefundenen NAmen kopieren
        Set pageRange = ActiveDocument.Bookmarks("\Page").Range
        pageRange.Copy
    
        'das zum Namen passende Dokument öffnen
        Documents.Open "C:\Daten\" & myArray(n)
        'die kopierte Seite in das soeben geöffnet Dokument einfügen
        Selection.Paste
        'das Dokument schließen mit speichern
        ActiveDocument.Close SaveChanges:=True
    Next

End Sub
Gruß
Jochen


  

Betrifft: AW: Word, Text finden, Seite kopieren von: Thomas
Geschrieben am: 04.07.2017 12:48:11

VIIIIIIIIIIIIIIIIELEN dank :)

Und ja, natürlich beziehe ich die namen aus einer Excel datei ;)

Hab ich ganz vergessen zu erwähnen :)


  

Betrifft: AW: Danke für die Rückmledung von: JoWE
Geschrieben am: 04.07.2017 13:03:36




Beiträge aus den Excel-Beispielen zum Thema "Word, Text finden, Seite kopieren"