View Single Post
 
Old 03-29-2018, 02:18 PM
amenu amenu is offline Windows 7 64bit Office 2010 32bit
Novice
 
Join Date: Mar 2018
Posts: 6
amenu is on a distinguished road
Default

Paul, I assure you I have been paying attention.

I thought the person I am trying to help would have to invoke the mail merge wizard, start with selecting the label template, and go though the following steps to complete the mail merge. I did not realize she could open a Word document with a pre-formatted table with all the merge fields entered. I have created such a document. She will have to click on Yes and then Finish and Merge to produce the printable labels.

To ensure her acceptance of a process that she has never used I wanted to come up with a one-click solution by recording a macro.

It turns out that the recorded macro does not work when run in an empty document. It produces one merged label per page instead of the 30 labels per page that the labels template calls for.

I would be interested in learning why. I have recorded macros that work fine and are most useful, so this puzzles me. Perhaps you or someone else who has been following this thread can offer insight. I have copied the code below.

Thank you for your patience with a novice.-- Art

Code:
Sub Macro3()
'
' Macro3 Macro
'
'
    ActiveDocument.MailMerge.OpenDataSource Name:= _
        "E:\Data backup 24 Nov 2017\DATA\Centennial Treasurer\Centennial contacts.xlsm" _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=E:\Data backup 24 Nov 2017\DATA\Centennial Treasurer\Centennial contacts.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Eng" _
        , SQLStatement:="SELECT * FROM `MailingContacts$`", SQLStatement1:="", _
        SubType:=wdMergeSubTypeAccess
    ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField _
        , Text:="""MAILING_ADDRESS"""
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
End Sub

Last edited by macropod; 03-29-2018 at 02:31 PM. Reason: Added code tags
Reply With Quote