Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 10-10-2020, 10:43 AM
John 4 John 4 is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2013
Advanced Beginner
Applying heading styles from normal template to all files in a folder
 
Join Date: Oct 2019
Posts: 44
John 4 is on a distinguished road
Default Applying heading styles from normal template to all files in a folder

I got the code below from one of Macropod's posts on another thread. I recorded a macro of me applying the Styles to one of the desired files and was hoping I could cut and paste with a little modification to get it to work in Macropod's macro. The entire macro i recorded isn't here, just one relevant part (and the most relevant part of that is bolded).



I had hoped something like "strFolder\strFile" in the place of the bolded section would work, but of course it doesn't. Could one of you do whatever tweaking is necessary to get it work please? Thanks for your help.


Code:
Sub UpdateDocuments()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
strDocNm = ActiveDocument.FullName: strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.docx", vbNormal)
While strFile <> ""
  If strFolder & "" & strFile <> strDocNm Then
    Set wdDoc = Documents.Open(FileName:=strFolder & "" & strFile, AddToRecentFiles:=False, Visible:=False)
    With wdDoc

      'Call your other macro or insert its code here
          With ActiveDocument
        .UpdateStylesOnOpen = False
        .AttachedTemplate = "Normal"
    End With
    Application.OrganizerCopy Source:= _
        "C:\Users\MyName\AppData\Roaming\Microsoft\Templates\Normal.dotm", _
        Destination:= _
        "C:\Users\MyName\Documents\FolderName\FileName.docx" _
        , Name:="Default", Object:=wdOrganizerObjectStyles

      .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
Reply With Quote
  #2  
Old 10-10-2020, 01:25 PM
John 4 John 4 is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2013
Advanced Beginner
Applying heading styles from normal template to all files in a folder
 
Join Date: Oct 2019
Posts: 44
John 4 is on a distinguished road
Default

I was hoping (again. But i was actually hopeful this time), that the following version would be successful. Alas...

Code:
Sub UpdateDocuments()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
strDocNm = ActiveDocument.FullName: strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.docx", vbNormal)
While strFile <> ""
  If strFolder & "" & strFile <> strDocNm Then
    Set wdDoc = Documents.Open(FileName:=strFolder & "" & strFile, AddToRecentFiles:=False, Visible:=False)
        x = wdDoc.Path & Application.PathSeparator & wdDoc.Name
    With wdDoc

      'Call your other macro or insert its code here
        .UpdateStylesOnOpen = False
        .AttachedTemplate = "Normal"
    Application.OrganizerCopy Source:= _
        "C:\Users\MyName\AppData\Roaming\Microsoft\Templates\Normal.dotm", _
        Destination:="x", Name:="Default", Object:=wdOrganizerObjectStyles

      .Close SaveChanges:=True
    End With
  End If
  strFile = Dir()
Wend
Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub
Reply With Quote
  #3  
Old 10-11-2020, 04:02 PM
Charles Kenyon Charles Kenyon is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2019
Moderator
 
Join Date: Mar 2012
Location: Sun Prairie, Wisconsin
Posts: 6,923
Charles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to beholdCharles Kenyon is a splendid one to behold
Default

I have not looked at your code, sorry.
Here is my template that copies heading styles to the Active Document through a macro which is documented in the template.
Outline Heading Styles Global Stylesheet Add-In

You do not need to attach the normal template or any template to copy all of the styles or selected from it.

If using OrganizerCopy method, you should do it for all styles three times if any of the styles are based on another style being copied. (This may be superstition but I've done it that way since Word 97 to avoid problems.)

Here is code to update all styles wiithout using the organizer or attaching the template.

Code:
Private Sub CopyNormalTemplateStylesVogelar()
   ' Copies styles from normal template
   ' 2019-12-01   Hans Vogelar
   ActiveDocument.CopyStylesFromTemplate (NormalTemplate.fullname)
End Sub

Private Sub CopyAllStylesGlobal()
    ' Copies all styles from Global Template - the template containing the macro
    ' 2020-01-12  Charles Kenyon
     ActiveDocument.CopyStylesFromTemplate (ThisDocument.fullname)
 End Sub
Macro to copy styles from one template to another - Microsoft Community


Both Graham Mayor and Greg Maxey have free utilities to batch process documents. Unless you are working on learning to code and enjoy it, you may want to use their utilities.



Here is the MVP article on batch processing. You seem to be following a similar path. How to Find & ReplaceAll on a batch of documents in the same folder by Ibby.
Reply With Quote
  #4  
Old 10-11-2020, 04:30 PM
Guessed's Avatar
Guessed Guessed is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 1,935
Guessed is a name known to allGuessed is a name known to allGuessed is a name known to allGuessed is a name known to allGuessed is a name known to allGuessed is a name known to all
Default

Is it just the heading styles you want to import or is it all styles?
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote
  #5  
Old 10-11-2020, 08:50 PM
John 4 John 4 is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2013
Advanced Beginner
Applying heading styles from normal template to all files in a folder
 
Join Date: Oct 2019
Posts: 44
John 4 is on a distinguished road
Smile

Many thanks Charles,
It's a pity you didn't look at the code I provided. It was almost all Macropod's, just a small part in the middle from me. I reckon someone like you could have fixed it directly in a lot less time than it took you to type your post. But I suppose your thinking is that one of those other options would take care of numerous future problems for me.

However I've been at those link locations before - although what's offered may be very useful in some areas; from memory, the Find and Replace function is very drastically reduced whereas with Macropod's macro you can use Find and Replace fully functional (just record or code what you want it to do and then place it in the middle of Mac's macro). As far as I can tell, the code I have is far more useful (for Find/Replace at least).

I used the 2 lines of code you provided to get my (Macropod's) code working. Here it is for anyone who may benefit (and it seems from the thread views that some are interested):


Sub UpdateDocuments()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
strDocNm = ActiveDocument.FullName: strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.docx", vbNormal)
While strFile <> ""
If strFolder & "" & strFile <> strDocNm Then
Set wdDoc = Documents.Open(FileName:=strFolder & "" & strFile, AddToRecentFiles:=False, Visible:=False)
With wdDoc

'Call your other macro or insert its code here
.CopyStylesFromTemplate (NormalTemplate.FullName)
.CopyStylesFromTemplate (ThisDocument.FullName)


.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


Andrew, nice to hear from you again after my promised holiday

I only need the heading styles at the minute, but it doesn't bother me that all styles are copied. But if you know how to differentiate the two then it may well come in useful later.

Thank you both.
Reply With Quote
  #6  
Old 10-11-2020, 10:37 PM
macropod's Avatar
macropod macropod is online now Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2010
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 20,489
macropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant futuremacropod has a brilliant future
Default

See: https://www.msofficeforums.com/28497-post34.html
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
  #7  
Old 10-13-2020, 10:24 AM
John 4 John 4 is offline Applying heading styles from normal template to all files in a folder Windows 10 Applying heading styles from normal template to all files in a folder Office 2013
Advanced Beginner
Applying heading styles from normal template to all files in a folder
 
Join Date: Oct 2019
Posts: 44
John 4 is on a distinguished road
Default

Many thanks Macropod,

and thanks for your original contribution. Most helpful
Reply With Quote
Reply

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Applying heading styles from normal template to all files in a folder Normal.dot Relationship of document and template. Durability of Styles when doc sent. crw1@y7mail.com Word 6 07-29-2020 03:08 PM
Keeping or restoring "Start at" value for heading list after updating styles from a template WordUser789 Word VBA 9 04-15-2019 12:16 AM
Styles and not applying correctly GinnyBcore Word 1 10-02-2018 03:18 PM
Applying a new theme to a new template in 2016 moves graphics in the template around dianahbr PowerPoint 0 02-27-2018 11:04 AM
Applying heading styles from normal template to all files in a folder Movable Word template with linked files and hidden folder Elmobram22 Word 6 11-15-2013 02:11 PM

Other Forums: Access Forums - Senior Forums

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


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