ich komme mal wieder mit einer ComatePlus-Anfrage zu euch.
Ich würde gerne im Footer (oder Header) einen Platzhalter ersetzen, z.B. #datum. Der Rest des Footers ist in bestimmter Weise angeordnet und soll sich nicht verändern.
Bisher besteht die Lösung darin, das Worddokument als XML abzuspeichern und mit
Code: Alles auswählen
SetXMLNodeText(*CurrentNode, newText)Code: Alles auswählen
SaveXML(xmldatei, Pfad)Nun bin ich auf die Idee gekommen, den Platzhalter mit ComatePlus zu ersetzen. Dabei bin ich dann nach zahlreichen Versuchen übergegangen erstmal eine VBA-Version hinzubekommen. Da wird zwar der Platzhalter ersetzt, aber die formatierte Fußzeile sieht beim Zurückschreiben immer anders aus. Hier mal zwei Versuche:
Code: Alles auswählen
    Dim strHeader As String
    strHeader = ActiveDocument.StoryRanges(wdPrimaryHeaderStory)
    strHeader = Replace(strHeader, "#datum", "25.03.2019")
    strHeader = Left(strHeader, Len(strHeader) - 1)
    ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = strHeader
Code: Alles auswählen
    Dim rngFoot  As Word.Range 'Quelle
    Dim rngFootZiel As Word.Range 'Ziel
    
    Set rngFoot = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText
    Set rngFootZiel = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
    
    'MsgBox strHeader
    rngFoot = Replace(rngFoot, "#now", "25.03.2019")
    
    rngFootZiel.Collapse wdCollapseStart
    rngFootZiel.FormattedText = rngFoot.FormattedText
 
 Die Hoffnung ist, den bestehenden VBA-Code in ComatePlus zu übersetzen.
Vielleicht hat ja jemand eine direkte Lösung oder zumindest zu meinen Ansätzen.
Viele Grüße
Meier
