Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 05-30-2019, 09:15 AM
vbaformailmerge vbaformailmerge is offline Using VBA for Mail Merging Windows 10 Using VBA for Mail Merging Office 2016
Novice
Using VBA for Mail Merging
 
Join Date: May 2019
Posts: 4
vbaformailmerge is on a distinguished road
Unhappy Using VBA for Mail Merging

I have been playing around with codes but I cannot figure out myself how to do this properly.

I have large databases and letter templates in which I normally would use the Finish & Merge button to merge these documents into a pdf within increments - For example;

If my database contained 3000 records I would split the records to be saved from records 1-1000 until I reach the end. I would greatly appreciate if anybody could help me with what to do? I would need a code to cycle through a loop and save the records as pdfs but in increments of a variable.

this was the code when I recorded a macro:
Code:
Sub test2()
'
' test2 Macro
'

    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 1
            .lastRecord = .FirstRecord + 15
        End With
        .Execute Pause:=False
    End With
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "1-15 test.pdf" _
        , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory _
        "filedirectory"
    Windows("filename.doc").Activate
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 15
            .lastRecord = .FirstRecord + 15
        End With
        .Execute Pause:=False
    End With
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "15-29 records.pdf" _
        , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory _
        "file directory"
    Windows("file.doc").Activate
End Sub
Option Explicit
(I have changed the filename locations to random ones to hide protected data)

I have been using it with other code I found on this forum so I am unsure how to put this into a loop?

If anyone knows of a way to do this or any tips/code I could work off of, I would be eternally grateful

Last edited by vbaformailmerge; 05-31-2019 at 02:18 AM.
Reply With Quote
 

Tags
loop, mail merge, vba



Similar Threads
Thread Thread Starter Forum Replies Last Post
Using VBA for Mail Merging 0 showing in address when mail merging Shazz Mail Merge 2 03-11-2016 01:54 AM
Using VBA for Mail Merging Merging, but not with mail ksims3 Word 1 07-29-2014 08:27 PM
How would you go about mail merging this set of data willsonfang Mail Merge 1 09-29-2013 07:16 PM
Using VBA for Mail Merging Gaps in address mail merging Trixz_D Mail Merge 2 08-05-2012 04:23 AM
Mail Merging more than 1 line of data ?? Keith24249 Mail Merge 0 10-16-2009 06:36 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 10: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