#1
|
|||
|
|||
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 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. |
#2
|
||||
|
||||
See Send Mailmerge Output to Individual Files in the Mailmerge Tips and Tricks 'Sticky' thread at the top of this forum: https://www.msofficeforums.com/mail-...ps-tricks.html
The code there outputs every record as a separate file. It could be adapted, though, to group records if that's what you really want. PS: When posting code, please use the code tags, indicated by the # button on the posting menu. Without them, your code loses much of whatever structure it had.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Quote:
|
#4
|
||||
|
||||
Tried using it how?
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
I put your code into a new macro and edited the variables to suit my data etc, but when I click run nothing happens, not sure why, so I don't know how to make it run correctly.
|
#6
|
||||
|
||||
Without actually seeing the problem mailmerge main document and some sample data, its impossible to diagnose the issue. Can you attach the document & sample data to a post with some representative data (delete anything sensitive)? You do this via the paperclip symbol on the 'Go Advanced' tab at the bottom of this screen.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#7
|
|||
|
|||
Quote:
So for example, I will be using the main doc and the database for merging so my fake database contains 30 records which I would like to merge and save as pdf for every 5 records together in one document. So I should end up with 6 pdfs in total with 5 records each. If that makes sense! I was playing around with a macro but I turned on the comp today and its vanished! any idea why it disappeared? Thank you so much! |
#8
|
||||
|
||||
Your mailmerge main document is trying to link to a CSV file, not to your Excel file.
There is also no VBA code in your mailmerge main document. Hardly surprising, therefore, that it doesn't 'work'. Evidently, you've either deleted the macro or it was never in the document - perhaps it was in a Word template that you closed without saving changes.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
Tags |
loop, mail merge, vba |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
0 showing in address when mail merging | Shazz | Mail Merge | 2 | 03-11-2016 01:54 AM |
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 |
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 |