Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Merge multiple data in one document from same data source
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 |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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 |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How do I mail merge to EMAIL from MS Word AND add a pdf attachment | Mailmerge | |||
printing a data source from a mail merge document | Mailmerge | |||
insert Excel data into Word Mail Merge document | Mailmerge | |||
Specific Email Merge w/ Specific Attachements | Mailmerge | |||
How do I print a mail merge data source without the main document | Mailmerge |