Hello Doug,
Thank you for replying; I will look into the links you have provided
shortly.
for the record, I want to split the mail merge depending on what is in the
'section' field. For example if I had an Excel spreadsheet with 100
addresses and 50 had the word "UK", 25 had "USA" and 25 had "Italy", I would
like three word documents to be created.
Is this possible?
John
"Doug Robbins - Word MVP" wrote:
It is not clear what you are trying to do. It sounds like you may be trying
to perform a "multiple items per condition (=key field)" mailmerge which
Word does not really have the ability to do:
See the "Group Multiple items for a single condition" item on fellow MVP
Cindy Meister's website at
http://homepage.swissonline.ch/cindy...faq1.htm#DBPic
Or take a look at the following Knowledge Base Article
http://support.microsoft.com/default...b;en-us;211303
or at:
http://cornell.veplan.net/article.aspx?&a=3815
Or, if you create a Catalog (on in Word XP and later, it's called Directory)
type mailmerge main document with the mergefields in the cells of a one row
table in the mailmerge main document with the keyfield in the first cell in
the row and then execute that merge to a new document and then run the
following macro, it will create separate tables with the records for each
key field in them. With a bit of further development, you may be able to
get it to do what you want.
' Macro to create multiple items per condition in separate tables from a
directory type mailmerge
Dim source As Document, target As Document, scat As Range, tcat As Range
Dim data As Range, stab As Table, ttab As Table
Dim i As Long, j As Long, k As Long, n As Long
Set source = ActiveDocument
Set target = Documents.Add
Set stab = source.Tables(1)
k = stab.Columns.Count
Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)
Set scat = stab.Cell(1, 1).Range
scat.End = scat.End - 1
ttab.Cell(1, 1).Range = scat
j = ttab.Rows.Count
For i = 1 To stab.Rows.Count
Set tcat = ttab.Cell(j, 1).Range
tcat.End = tcat.End - 1
Set scat = stab.Cell(i, 1).Range
scat.End = scat.End - 1
If scat tcat Then
ttab.Rows.Add
j = ttab.Rows.Count
ttab.Cell(j, 1).Range = scat
ttab.Cell(j, 1).Range.Paragraphs(1).PageBreakBefore = True
ttab.Rows.Add
ttab.Cell(j + 1, 1).Range.Paragraphs(1).PageBreakBefore = False
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End - 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
Else
ttab.Rows.Add
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End - 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
End If
Next i
--
Hope this helps.
Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.
Doug Robbins - Word MVP
"Kamitsukenu" wrote in message
...
Hello Graham,
Thank you for replying, I have downloaded the .dot document, put it in the
Start folder but it doesn't seem to work.
Is there anything I should be doing to get it to fire up when it starts to
merge?
Also I'm a newbie when it comes to macros; can you point me in the general
direction of what code I should be looking for to change?
Thanks,
John
"Graham Mayor" wrote:
You may be able to adapt the macros at
http://www.gmayor.com/individual_merge_letters.htm to do what you want.
--
Graham Mayor - Word MVP
My web site www.gmayor.com
Word MVP web site http://word.mvps.org
Kamitsukenu wrote:
Hi there,
I apologise if I have put this in the wrong forum, but is it possible
to split a mail merge into separate files dependant on the data in a
given field?
I have seen an example to split a document into individual letters
but not in quantities more than one letter.
Can anyone help?
Thanks in advance,
John