Kopfzeile mit Feldern kopieren

  • Word

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von WhiteGloves.

    Kopfzeile mit Feldern kopieren

    ** Edit **

    Hallo,

    mein Problem hat sich geändert, da ich gemerkt habe das ich auf dem falschen Weg bin.


    Ich muss ein Word Dokument öffnen und den gesamten Inhalt der Kopfzeile auslesen und in die Kopfzeile eines anderen Dokumentes einfügen.

    In der (auszulesenden) Kopfzeile befindet sich eine Tabelle welche einige dieser "Felder" enthält.

    Kopiere ich nun den Inhalt in die andere Kopfzeile, ist erstens die in der Orginalen enthaltene Tabelle verschwunden, sowie die Felder ebenfalls, bzw die Feldbezeichnung bleibt vorhanden, aber es ist eben kein Feld mehr....


    Ich hab auch leider keinen Plan wie ich dies Problem lösen kann.


    Ich arbeite übrigens mit VB 6.0 und vermute das mein Problem sich mit VBA besser Lösen ließe, will dies allerdings nur als wirklich letze Ausweichmöglichkeit verwenden !

    Hier ist mein momentaner Code:

    Visual Basic-Quellcode

    1. 'Hole den Inhalt der Kopfzeile der Vorlage (Orginal Dokument)
    2. Set objWordVorlage = CreateObject("Word.Application")
    3. objWordVorlage.Documents.Open "L Gesamt.doc"
    4. Set KopfzeileVorlage = objWordVorlage.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
    5. ' KopfzeileVorlage.Text Hier hab ich ja jetzt den Inhalt der Kopfzeile
    6. Set objWord = CreateObject("Word.Application")
    7. objWord.Documents.Open "C:\Dokumente und Einstellungen\sreule\Desktop\FOB 002-06 Änderungsvorschlag.doc"
    8. Set Kopfzeile = objWord.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
    9. 'jetzt einfach kopieren...
    10. Kopfzeile.Text = KopfzeileVorlage.Text

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „WhiteGloves“ ()

    Hi,

    hast Du schon mal den Makrorekorder von Word benutzt??

    - starte den Rekorder, führe die Kopieraktion aus (bis die Daten in der Zwischenablage sind)
    - Analysiere den erzeugten Code und füge ihn in Dein VB6 Projekt ein
    - mache das Gleiche mit dem Einfügen in das neue Dokument

    nen besseren Tipp hab ich jetzt auch erst mal nicht, sollte Dir aber erst mal nen Stück weiterhelfen. Bei Fragen bitte melden


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Naja mit dem MakroRekorder habe ich jetzt keine vernünftige Lösung bzw eine funktionierende Lösung finden können.

    Habe derweil schon folgendes ausprobiert, müsste quasi klappen, aber irgendwie verändert sich in dem Dokument nach CodeAusführung nichts....

    Visual Basic-Quellcode

    1. objWordVorlage.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    2. 'Kopiere Kopfzeile Inhalt (Strg A, Strg C)
    3. Selection.WholeStory
    4. Selection.Copy
    5. 'Jetzt hab ich den Inhalt der Kopfzeile im Selection
    6. 'Jetzt öffne ich die andere Datei und mache das selbe mit dem unterschied kein copy sondern paste
    7. objWord.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    8. 'Markieren (Strg A)
    9. Selection.WholeStory
    10. 'Löschen
    11. Selection.Delete
    12. 'Kopfzeile der Vortlage einfügen
    13. Selection.Paste
    14. 'Noch speichern....
    15. adoc.Save
    16. adoc.Close



    Tut sich aber nichts....


    *********** Edit
    Problem gelößt, für diejenigen die auf diesen Thread stoßen mit dem selben Problem hier eine Funktion die die Kopf sowie Fußzeilen eines Dokumentes in das andere einfügt.


    Visual Basic-Quellcode

    1. 'Fügt die Kopfzeile/Fusszeile von DestFile in SrcFile ein
    2. Function Tausche_HeaderFooter(ByVal DestFile As String, ByVal SrcFile As String)
    3. Dim ADoc As Object 'Ziel
    4. Dim BDoc As Object 'Quelle
    5. Dim rngKopf As Word.Range 'Quelle
    6. Dim rngZiel As Word.Range 'Ziel
    7. Dim rngFoot As Word.Range 'Quelle
    8. Dim rngFootZiel As Word.Range 'Ziel
    9. Set ADoc = CreateObject("Word.Application")
    10. Set BDoc = CreateObject("Word.Application")
    11. 'Quelldatei öffnen
    12. Set BDoc = Documents.Open(SrcFile)
    13. Set BDoc = ActiveDocument
    14. 'Hole Kopfzeile
    15. Set rngKopf = BDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range.FormattedText
    16. Set rngFoot = BDoc.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText
    17. 'Zieldatei öffnen
    18. Set ADoc = Documents.Open(DestFile)
    19. Set ADoc = ActiveDocument
    20. If ADoc.HasPassword Then
    21. ADoc.Unprotect "ok"
    22. End If
    23. 'Ziel Kopfzeile
    24. Set rngZiel = ADoc.Sections(1).Headers(wdHeaderFooterPrimary).Range
    25. Set rngFootZiel = ADoc.Sections(1).Footers(wdHeaderFooterPrimary).Range
    26. 'rngZiel.Delete
    27. rngZiel.Text = " "
    28. rngFootZiel = " "
    29. 'Die Kopfzeile ins Ziel Dokument einfügen
    30. rngZiel.Collapse wdCollapseStart
    31. rngZiel.FormattedText = rngKopf.FormattedText
    32. 'Die Fußzeile ins Ziel Dokument einfügen
    33. rngFootZiel.Collapse wdCollapseStart
    34. rngFootZiel.FormattedText = rngFoot.FormattedText
    35. ADoc.Protect wdAllowOnlyFormFields, False, "ok"
    36. ADoc.Save
    37. ADoc.Close
    38. BDoc.Close
    39. Set ADoc = Nothing
    40. Set BDoc = Nothing
    41. End Function

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „WhiteGloves“ ()