Without the documents this cannot be tested, but a few observations are warranted.
Why have you created another variable for strSubFolderNewName?
Code:
strpat = strSubFolderNewName
Use the strSubFolderNewName name you have already defined.
Your FileExists statements are never true because strSubFolderName doesn't end in a folder separator character, so the documents cannot be created. Thus the lines e.g.
Code:
Case fso.FileExists(strpat & "Mail AU.docx")
Set oDoc = Documents.Add(Template:=strpat & "Mail AU.docx")
'etc
should probably be
Code:
Case fso.FileExists(strSubFolderNewName & "\" & "Mail AU.docx")
Set oDoc = Documents.Add(Template:=strSubFolderNewName & "\" & "Mail AU.docx")
'etc
You have declared and defined some variables 'anexa#' but not used them?
You have created CreateObject("Scripting.FileSystemObject") twice as fso and oFSO. You only need to create it once and use the same object twice.