View Single Post
  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Melissa Melissa is offline
external usenet poster
 
Posts: 75
Default group mail merge on recipient - Looking for a Hero

Is it possible to make this work for an email mail merge?


--
Melissa


"Doug Robbins - Word MVP" wrote:

You could possibly make use of the information in the article at:

http://cornell.veplan.net/article.aspx?&a=3815

but it will not do the whole thing for you. You would then have to split up
the document that is produced into the part for each manager so that they
could be individually emailed.

Alterntively, 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 (Manager's
Name)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 Manager in them. With a bit of further
development, you may be able to get it to do what you want. Most of what
you would need for the modification is contained in the article "Mail Merge
to E-mail with Attachments" at:

http://word.mvps.org/FAQs/MailMerge/...ttachments.htm

' 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

"Danielle_P" wrote in message
...
Hello all:

I am spending way too much time on this one.

I am pulling a report in Excel. This report shows individual records for
many employees. The issue is that I want to send this data to the
employee's
manager in one message instead of 100 individual emails. I am doing this
for
200 + managers on their 5000+ employees.

I do have a common Excel column that lists the manager's name and email
address. Can I batch on this field to send all of the data in one email?

I can't tell you how much I would appreciate any advice anyone has for me.

Thank you so much