Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to
put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#2
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
It is simpler to create separate merges for front and back.
The merge will not step back in the data to print the back of the card (the second page) with the data from the first card. If you want to merge into both the front and the back of the card, I would guess that one practical way would be to create a new data file with each block of four records duplicated (include blank records if your data file is not a multiple of 8 or the last sheet of the merge will be wrong), eg Record1 Record2 Record3 Record4 Record1 Record2 Record3 Record4 Record5 Record6 Record7 Record8 Record5 Record6 Record7 Record8 Record 9 blank blank blank Record 9 You could then create a new label document comprising two pages - set the document type to 'letter' and on the first page enter one side of the cards and on the second page enter the other side information. Add a next record field at the start of each cell except the first one on the first page. Propagation will not work so you will have to use copy and paste to create the other three 'labels' on each page. I don't have a printer which duplexes, but the method works in practice when merged to a new document. -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org taxmom wrote: I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#3
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
This cannot be done with mailmerge alone. What you need to do is execute
two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#4
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
Hi Graham,
This is probably simpler than my method, but depending on the duplexing capability of the printer (Flip on short side or flip on long side), it may be necessary to re-arrange the order of the second set of records For flip on long side which is the default I believe, the records would need to be in the following order Record1 Record2 Record3 Record4 Record2 Record1 Record4 Record3 If the flip is on the short side, the records would need to be Record1 Record2 Record3 Record4 Record3 Record4 Record1 Record2 and also the text will be upside down relative to that on the other side of the card. -- 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 "Graham Mayor" wrote in message ... It is simpler to create separate merges for front and back. The merge will not step back in the data to print the back of the card (the second page) with the data from the first card. If you want to merge into both the front and the back of the card, I would guess that one practical way would be to create a new data file with each block of four records duplicated (include blank records if your data file is not a multiple of 8 or the last sheet of the merge will be wrong), eg Record1 Record2 Record3 Record4 Record1 Record2 Record3 Record4 Record5 Record6 Record7 Record8 Record5 Record6 Record7 Record8 Record 9 blank blank blank Record 9 You could then create a new label document comprising two pages - set the document type to 'letter' and on the first page enter one side of the cards and on the second page enter the other side information. Add a next record field at the start of each cell except the first one on the first page. Propagation will not work so you will have to use copy and paste to create the other three 'labels' on each page. I don't have a printer which duplexes, but the method works in practice when merged to a new document. -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org taxmom wrote: I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#5
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
That's the problem with not having the duplex printer to test on .
I began writing a macro that would add in the extra empty fields based on the number of records in the data source and then sort out the data into the required order, but my eyes quickly glazed over and there is the problem of whether the printer duplexes horizontally or vertically. I was thinking that your method might be simpler after all I may return to this when I feel more inclined. -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Doug Robbins - Word MVP wrote: Hi Graham, This is probably simpler than my method, but depending on the duplexing capability of the printer (Flip on short side or flip on long side), it may be necessary to re-arrange the order of the second set of records For flip on long side which is the default I believe, the records would need to be in the following order Record1 Record2 Record3 Record4 Record2 Record1 Record4 Record3 If the flip is on the short side, the records would need to be Record1 Record2 Record3 Record4 Record3 Record4 Record1 Record2 and also the text will be upside down relative to that on the other side of the card. "Graham Mayor" wrote in message ... It is simpler to create separate merges for front and back. The merge will not step back in the data to print the back of the card (the second page) with the data from the first card. If you want to merge into both the front and the back of the card, I would guess that one practical way would be to create a new data file with each block of four records duplicated (include blank records if your data file is not a multiple of 8 or the last sheet of the merge will be wrong), eg Record1 Record2 Record3 Record4 Record1 Record2 Record3 Record4 Record5 Record6 Record7 Record8 Record5 Record6 Record7 Record8 Record 9 blank blank blank Record 9 You could then create a new label document comprising two pages - set the document type to 'letter' and on the first page enter one side of the cards and on the second page enter the other side information. Add a next record field at the start of each cell except the first one on the first page. Propagation will not work so you will have to use copy and paste to create the other three 'labels' on each page. I don't have a printer which duplexes, but the method works in practice when merged to a new document. -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org taxmom wrote: I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#6
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
What about
a. you start with a laebl type mail merge main document. Suppose it is a four card layout. b. you duplicate the page and the table in it. You may also need to asdjust the position and layout of the table on page 2 c. you have { NEXT } fields in cells 2 3 and 4 on page 1 but none on page 2 d. suppose you want fields A and B on the front and fields B and C on the back In cell one on page one you have { SET B1 { MERGEFIELD B }{ SET C1 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } in cell two you have { NEXT }{ SET B2 { MERGEFIELD B }{ SET C2 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } and so on for cells 3 and 4. On page two in cell one, you have { REF B2 } { REF C2 } in cell two , you have { REF B1 } { REF C1 } and so on (which way round exactly depends on the way the duplexing works). A really simple example seems to work - you can merge to a new document to see. But a. am I missing something? b. ISTR that you can't SET and REF stuff such as ADDRESSBLOCK fields. Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... This cannot be done with mailmerge alone. What you need to do is execute two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#7
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
Just as I began to work out the macro to adjust the data ......
Frankly I believe you are better off without the AddressLayout fields - otherwise it seems to work and should be easy to adapt to this task. I still rather like the idea of manipulating the data. It should be possible to adapt this method to work with any double sided format, but this is stretching my programming skills and could take some time -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Peter Jamieson wrote: What about a. you start with a label type mail merge main document. Suppose it is a four card layout. b. you duplicate the page and the table in it. You may also need to asdjust the position and layout of the table on page 2 c. you have { NEXT } fields in cells 2 3 and 4 on page 1 but none on page 2 d. suppose you want fields A and B on the front and fields B and C on the back In cell one on page one you have { SET B1 { MERGEFIELD B }{ SET C1 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } in cell two you have { NEXT }{ SET B2 { MERGEFIELD B }{ SET C2 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } and so on for cells 3 and 4. On page two in cell one, you have { REF B2 } { REF C2 } in cell two , you have { REF B1 } { REF C1 } and so on (which way round exactly depends on the way the duplexing works). A really simple example seems to work - you can merge to a new document to see. But a. am I missing something? b. ISTR that you can't SET and REF stuff such as ADDRESSBLOCK fields. Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... This cannot be done with mailmerge alone. What you need to do is execute two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#8
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
I am not sure that the OP wanted the same fields for each record on both
sides of the card, which I think Peter's method cannot handle. If the data source is a Word document and the Printer flips on the long edge of the paper (usually the default) I believe that the following macro will make the necessary modification to the datasource: Dim i As Long, j As Long Dim dtable As Table Dim arec As Range Set dtable = ActiveDocument.Tables(1) i = (dtable.Rows.Count - 1) Mod 4 If i 0 Then For j = 1 To 4 - 1 dtable.Rows.Add Next j End If For i = dtable.Rows.Count - 3 To 5 Step -4 For j = 1 To 4 dtable.Rows.Add (dtable.Rows(i)) Next j Next i For j = 1 To 4 dtable.Rows.Add Next j For i = dtable.Rows.Count To 9 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 5, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 1 To 8 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 3, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 2 To 7 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 5, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 3 To 6 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 3, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j 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 "Graham Mayor" wrote in message ... Just as I began to work out the macro to adjust the data ...... Frankly I believe you are better off without the AddressLayout fields - otherwise it seems to work and should be easy to adapt to this task. I still rather like the idea of manipulating the data. It should be possible to adapt this method to work with any double sided format, but this is stretching my programming skills and could take some time -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Peter Jamieson wrote: What about a. you start with a label type mail merge main document. Suppose it is a four card layout. b. you duplicate the page and the table in it. You may also need to asdjust the position and layout of the table on page 2 c. you have { NEXT } fields in cells 2 3 and 4 on page 1 but none on page 2 d. suppose you want fields A and B on the front and fields B and C on the back In cell one on page one you have { SET B1 { MERGEFIELD B }{ SET C1 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } in cell two you have { NEXT }{ SET B2 { MERGEFIELD B }{ SET C2 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } and so on for cells 3 and 4. On page two in cell one, you have { REF B2 } { REF C2 } in cell two , you have { REF B1 } { REF C1 } and so on (which way round exactly depends on the way the duplexing works). A really simple example seems to work - you can merge to a new document to see. But a. am I missing something? b. ISTR that you can't SET and REF stuff such as ADDRESSBLOCK fields. Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... This cannot be done with mailmerge alone. What you need to do is execute two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#9
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
I am not sure that the OP wanted the same fields for each record on both
sides of the card, which I think Peter's method cannot handle. Not sure why - the example I gave had field "A" (just used on side "1"), field "B", (used on both sides), and field "C", (just used on side 2), precisely to cover the main possibile combinations. But one of the reaosns I asked about this method it that I haven't used it except experimentally, and once I'd come across a problem with ADDRESSBLOCK the possibility that there were other drawbacks that would rule it out for everyday use seemed more likely. As for ADDRESSBLOCK (and the apparently less-used and/or less problematic GREETINGLINE), I tend to the view that a. if it works, it works (but I don't think it works in this case, where you eneed to preserve values via SET fields b. if it doesn't work, there are a very small number of things worth trying to make it work (e.g. changing field mappings) c. even if it does appear to work, there has to be some doubt as to whether it really works the way the user thinks it works (e.g. maybe they didn't test all the possible person+spouse combinations). It's very difficult to tell, but I suspect it works for more people than perhaps we realise (since we tend to see the "I can't make it work" questions, rather than "it worked!" comments. d. if it doesn't work, or you want more certainty, head for the "individual fields" approach straight away. Going back to the double-sided labels stuff, one likely problem, for example, is that you can't use Propagate labels to fill in all your labels (on pages 1 and 2) because the fields on pages 1 and 2 would typically need to be different. (FWIW I have difficulty testing this anyway because I still use a Tablet PC and there is stil no fix for the tablet-specific problem with Propagate Labels :-)) Peter Jamieson Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... I am not sure that the OP wanted the same fields for each record on both sides of the card, which I think Peter's method cannot handle. If the data source is a Word document and the Printer flips on the long edge of the paper (usually the default) I believe that the following macro will make the necessary modification to the datasource: Dim i As Long, j As Long Dim dtable As Table Dim arec As Range Set dtable = ActiveDocument.Tables(1) i = (dtable.Rows.Count - 1) Mod 4 If i 0 Then For j = 1 To 4 - 1 dtable.Rows.Add Next j End If For i = dtable.Rows.Count - 3 To 5 Step -4 For j = 1 To 4 dtable.Rows.Add (dtable.Rows(i)) Next j Next i For j = 1 To 4 dtable.Rows.Add Next j For i = dtable.Rows.Count To 9 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 5, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 1 To 8 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 3, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 2 To 7 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 5, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j Next i For i = dtable.Rows.Count - 3 To 6 Step -8 For j = 1 To dtable.Columns.Count Set arec = dtable.Cell(i - 3, j).Range arec.End = arec.End - 1 dtable.Cell(i, j).Range = arec Next j 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 "Graham Mayor" wrote in message ... Just as I began to work out the macro to adjust the data ...... Frankly I believe you are better off without the AddressLayout fields - otherwise it seems to work and should be easy to adapt to this task. I still rather like the idea of manipulating the data. It should be possible to adapt this method to work with any double sided format, but this is stretching my programming skills and could take some time -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Peter Jamieson wrote: What about a. you start with a label type mail merge main document. Suppose it is a four card layout. b. you duplicate the page and the table in it. You may also need to asdjust the position and layout of the table on page 2 c. you have { NEXT } fields in cells 2 3 and 4 on page 1 but none on page 2 d. suppose you want fields A and B on the front and fields B and C on the back In cell one on page one you have { SET B1 { MERGEFIELD B }{ SET C1 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } in cell two you have { NEXT }{ SET B2 { MERGEFIELD B }{ SET C2 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } and so on for cells 3 and 4. On page two in cell one, you have { REF B2 } { REF C2 } in cell two , you have { REF B1 } { REF C1 } and so on (which way round exactly depends on the way the duplexing works). A really simple example seems to work - you can merge to a new document to see. But a. am I missing something? b. ISTR that you can't SET and REF stuff such as ADDRESSBLOCK fields. Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... This cannot be done with mailmerge alone. What you need to do is execute two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#10
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
Just as I began to work out the macro to adjust the data ......
:-) yes, see my reply to Doug on some of this stuff... I still rather like the idea of manipulating the data. It should be possible to adapt this method to work with any double sided format, but this is stretching my programming skills and could take some time One problem is that the label content on one side differs from the other, i.e.the user cannot rely on built-in facilities such as Propagate Labels. Another is that the label layout on one side may not be the same as the other. it should be possible to work out for "side 2" from the various dimensions on "side 1" but I haven't thought about it at a detailed level. As for manipulating the data, the main advantage is IMO that you use the data source like any other source (e.g. if you want to use ADDRESSBLOCK, you are probably not going to be constrained by having to use SET fields. The main problem seems to me to be that the specific code is probably going to be different depending on the data source, although the general "duplicate & sort " algorithm required for duplex printing should be the same for any type of data source. Once people are committed to sorting their source data, I suspect that most people would be quite happy to save in any format that would allow them to use an off-the-shelf algorithm. The main problem is likely to arise if they can't convert their data to that format without some loss of information (e.g. if they have memo fields in Excel but they get truncated during an export - that sort of thing). One approach that might deal with a lot of data source types might be to create a .mdb with tables linked to the real data source and work out some algorithms and queries that would return everything required in the correct sequence. But as a general-purpose solution, that would definitely fall foul of data conversion problems (e.g. because of the sort of general problems you get using ODBC drivers to access Excel data). Further, using SQL to retrieve specified sets of records is one thing - using it to provide a correct sequence of interleaved records may not be so straightforward, although I think I can see the outline of a solution. Peter Jamieson "Graham Mayor" wrote in message ... Just as I began to work out the macro to adjust the data ...... Frankly I believe you are better off without the AddressLayout fields - otherwise it seems to work and should be easy to adapt to this task. I still rather like the idea of manipulating the data. It should be possible to adapt this method to work with any double sided format, but this is stretching my programming skills and could take some time -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Peter Jamieson wrote: What about a. you start with a label type mail merge main document. Suppose it is a four card layout. b. you duplicate the page and the table in it. You may also need to asdjust the position and layout of the table on page 2 c. you have { NEXT } fields in cells 2 3 and 4 on page 1 but none on page 2 d. suppose you want fields A and B on the front and fields B and C on the back In cell one on page one you have { SET B1 { MERGEFIELD B }{ SET C1 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } in cell two you have { NEXT }{ SET B2 { MERGEFIELD B }{ SET C2 { MERGEFIELD C }{ MERGEFIELD A } { MERGEFIELD B } and so on for cells 3 and 4. On page two in cell one, you have { REF B2 } { REF C2 } in cell two , you have { REF B1 } { REF C1 } and so on (which way round exactly depends on the way the duplexing works). A really simple example seems to work - you can merge to a new document to see. But a. am I missing something? b. ISTR that you can't SET and REF stuff such as ADDRESSBLOCK fields. Peter Jamieson "Doug Robbins - Word MVP" wrote in message ... This cannot be done with mailmerge alone. What you need to do is execute two merges, one for the front side and one for the back, each one to a new document, then use a macro to combine those documents into a single document taking alternate pages for each and then print that combined document to your duplex printer. I have previously set this sort of thing up for a person who was merging two postcards to a sheet for which the following macro was used to combine the documents. It will probably need modification for your four cards per sheet: Sub CombineDocs() Dim sourcea As Document, sourceb As Document, target As Document Dim i As Long, j As Long Dim arange As Range Set target = Documents.Open(FileName:="c:\target.doc") Set sourcea = Documents.Open(FileName:="c:\sourcea.doc") Set sourceb = Documents.Open(FileName:="c:\sourceb.doc") j = 2 * sourcea.Tables(1).Rows.Count - 1 For i = 1 To j target.Tables(1).Rows.Add Next i With sourcea.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 2 End If target.Tables(1).Cell(2 * i - j, 1).Range.FormattedText = arange Next i End With With sourceb.Tables(1) For i = 1 To .Rows.Count Set arange = .Rows(i).Cells(1).Range arange.End = arange.End - 1 If i Mod 2 = 1 Then j = 1 Else j = 0 End If target.Tables(1).Cell(2 * i + j, 1).Range.FormattedText = arange Next i End With sourcea.Close wdDoNotSaveChanges sourceb.Close wdDoNotSaveChanges End Sub -- 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 "taxmom" wrote in message ... I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
#11
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
How to print double sided postcard using mail merge
Better late than never, this thread got me interested in producing a utility
to create the data files required for producing duplex merges to postcards and business cards. Doug also produced a version and his code was somewhat neater than mine (though no faster and produced the same result) so we ran with his core algorithms tacked on to my front end. The result is a web page and add-in - www.gmayor.com/duplex_merge_data.htm which are uploading at this moment -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org taxmom wrote: I need to print a postcards using 4 cards per 8 1/2 x 11 paper. I want to put merge specific data on the front of the card and the clients name and mailing address on the back of the card. Can anyone walk me through the steps to do this. I am not having any problems with the mail merge function, I just can't figure out how to do the double sided merge. I do have duplex printing capabilities |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Double sided merge & duplex print | Mailmerge | |||
how to print an A5 booklet on double sided A4 paper | Page Layout | |||
mail merge 2 x 2 double sided | Mailmerge | |||
how do i print double sided in word | New Users | |||
How do I print a document double-sided? I can't find a print opti. | Microsoft Word Help |