Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 05-02-2017, 04:57 AM
Charles Kenyon Charles Kenyon is offline Moving body text from old files to new files (based on template) Windows 10 Moving body text from old files to new files (based on template) Office 2013
Moderator
 
Join Date: Mar 2012
Location: Sun Prairie, Wisconsin
Posts: 9,533
Charles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant future
Default

Paul,

They are changing headers and footers. Attaching a new template will do nothing. They need to copy the body of the template into a new template with the new headers/footers.

Any chance you could come up with code that will:
For each template in a folder...
  1. Create a new template based on their new letterhead template
  2. Copy the body of the old template (absent last section mark) into the newly created template
  3. Save the new template with the same name as the old one in a second folder?
So long as their old ones have only one section, that should work. While I exect I could do this, it would be a week-long project for me and probably not as good as you could come up with in 10 minutes.
Reply With Quote
  #2  
Old 05-02-2017, 03:24 PM
macropod's Avatar
macropod macropod is online now Moving body text from old files to new files (based on template) Windows 7 64bit Moving body text from old files to new files (based on template) Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,467
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Quote:
Originally Posted by Charles Kenyon View Post
They are changing headers and footers. Attaching a new template will do nothing.
Au contraire, the code I posted both attaches the new template and updates the Styles.

As for the headers/footers, if the content differs, the processing of that can be added to the code:
Code:
Sub UpdateDocumentsAndTemplates()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
Dim strTmplt As String, wdTmp As Document, HdFt As HeaderFooter
strDocNm = ActiveDocument.FullName
strFolder = GetFolder
If strFolder = "" Then Exit Sub
strTmplt = "C:\Templates\SomeTemplate.dotm"
Set wdTmp = Documents.Open(strTmplt)
strFile = Dir(strFolder & "\*.doc", vbNormal)
While strFile <> ""
  If strFolder & "\" & strFile <> strDocNm Then
    Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False)
    With wdDoc
      .AttachedTemplate = strTmplt
      .CopyStylesFromTemplate (strTmplt)
      With .Sections(1)
        For Each HdFt In .Headers
          If HdFt.Exists Then
            If wdTmp.Sections(1).Headers(HdFt.Index).Exists Then
              HdFt.Range.FormattedText = wdTmp.Sections(1).Headers(HdFt.Index).Range.FormattedText
            End If
          End If
        Next
        For Each HdFt In .Footers
          If HdFt.Exists Then
            If wdTmp.Sections(1).Footers(HdFt.Index).Exists Then
              HdFt.Range.FormattedText = wdTmp.Sections(1).Footers(HdFt.Index).Range.FormattedText
            End If
          End If
        Next
      End With
      .Close SaveChanges:=True
    End With
  End If
  strFile = Dir()
Wend
Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub

Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Need to find/replace text in many word files - but text is in embedded word files semple.13 Word VBA 5 11-03-2015 01:20 PM
Moving body text from old files to new files (based on template) Moving Multiple Hyperlinked Files around cole790 Word 1 12-08-2013 03:55 PM
Merging pst files and moving to NAS drive riteoh Outlook 0 10-02-2012 05:20 AM
Moving body text from old files to new files (based on template) Moving files from one template to another Stephen0352 Word 4 03-05-2012 01:29 AM
moving data files g48dd Outlook 2 06-17-2011 01:18 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 01:48 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft