View Single Post
  #3   Report Post  
Jasy
 
Posts: n/a
Default Merge multiple data in one document from same data source

Thanks Mr. Doug Robbins for the idea.
By reading some articles I have managed to make the way I want.
I have used conconate function with nested if statement to bring all the
data from different column to one.
Then used advanced filter to filter uniqe records. This gave me a new data
base which can be merged easly.

Thanks

Jasy




"Doug Robbins" wrote in message
...
The usual way would be to have a separate column in Excel for each element
of the address

Name Add line 1 Add Line 2 City postal code

Given what you are starting with, you may find some help in the following:

"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

How to Work Around Duplicate Names in Mail Merge Data

http://support.microsoft.com/default...b;en-us;302665



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
"Jasy" wrote in message
...
I have a data in excel following way.



Assume only two columns,

1st column is for name

Second column for address.



If the address has 5 lines, the name repeating 5 times in first column
and different address lines in the next column.

Example





Name Address



RON Add line 1

RON Add Line 2

RON City

RON postal code

BOB Address 1

BOB Address 2

BOB City

JAIN Address 1

JAIN City



How can I merge this data to the word document in such a way that the
name will come only once and all the address lines related to a
particular record in same page.

From above example I need to get only three merged documents.

Can somebody help? I have tried nextif but could not workout.



I can not change the data as it is importing from other source and is
very large than I have shown above.



Thanks in advance.



Jasy