![]() |
|
#1
|
||||
|
||||
![]() Try the following revision to the macro. I haven't addressed the sub-folder issue yet; at this stage I'm just focussing on getting all the files in the 'base' folder processed. Code:
Sub GenerateProjectDocuments() Application.ScreenUpdating = False Application.DisplayAlerts = wdAlertsNone Dim strFolder As String, StrSrc As String, strPath As String, strFile As String Dim strDocNm As String, wdDoc As Document, FlFmt As Long strDocNm = ActiveDocument.FullName: strPath = ActiveDocument.Path strFolder = GetFolder: If strFolder = "" Then Exit Sub StrSrc = strFolder & "\ProjectDataFile.xlsx" strFile = Dir(strPath & "\*.doc", vbNormal) While strFile <> "" If strPath & "\" & strFile <> strDocNm Then Set wdDoc = Documents.Open(FileName:=strPath & "\" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc FlFmt = .SaveFormat If .MailMerge.Fields.Count > 0 Then With .MailMerge .MainDocumentType = wdNotAMergeDocument .MainDocumentType = wdCatalog .Destination = wdSendToNewDocument .OpenDataSource Name:=StrSrc, ReadOnly:=True, AddToRecentFiles:=False, LinkToSource:=False, _ Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" & _ "Data Source=StrSrc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _ SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess .DataSource.ActiveRecord = wdFirstRecord .DataSource.LastRecord = .DataSource.ActiveRecord .Execute Pause:=False End With .Close SaveChanges:=False End If End With With ActiveDocument .SaveAs2 FileName:=strFolder & "\" & strFile, FileFormat:=FlFmt, AddToRecentFiles:=False .Close SaveChanges:=False End With End If strFile = Dir() Wend Set wdDoc = Nothing Application.DisplayAlerts = wdAlertsAll 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] |
#2
|
|||
|
|||
![]()
Hi Paul,
I moved a group of files into the same directory as the macro (updated) and ran the macro. Unfortunately none of the files processed. They were ones that were still 'linked' back to the old XLSX file. What was the update to the macro above? |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
alistair_ | Excel Programming | 5 | 04-10-2017 08:27 AM |
![]() |
terrydennis | Word | 4 | 11-11-2015 05:04 PM |
![]() |
mit | Excel | 1 | 06-14-2011 10:15 AM |
Printing multiple page worksheet with watermark | zany | Excel | 2 | 11-27-2009 01:33 AM |
Outlook XP (2002) printing multiple attachments | couriced | Outlook | 0 | 10-13-2005 05:36 AM |