If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
Merge down and then across
I'm using a label mail merge to create a 3 column product list. The products
should be arranged alphabetically down each column. Word fills the merge across the rows, then down. Can I change that and if so, how? Thanks for your help. Rick |
#2
|
|||
|
|||
Merge down and then across
If the data source is a table in a Word document, running the following
macro on that document will rearrange the records so that they are printed in the way that you want: ' Macro to assign numbers to data source so that it can be sorted to cause labels to print down columns Dim Message, Title, Default, labelrows, labelcolumns, i As Integer, j As Integer, k As Integer Message = "Enter the number of labels in a row" ' Set prompt. Title = "Labels per Row" ' Set title. Default = "3" ' Set default. ' Display message, title, and default value. labelcolumns = InputBox(Message, Title, Default) Message = "Enter the number of labels in a column" ' Set prompt. Title = "Labels per column" ' Set title. Default = "5" ' Set default. labelrows = InputBox(Message, Title, Default) ActiveDocument.Tables(1).Columns.Add BeforeColumn:=ActiveDocument.Tables(1).Columns(1) ActiveDocument.Tables(1).Rows(1).Range.Cut k = 1 For i = 1 To ActiveDocument.Tables(1).Rows.Count - labelcolumns For j = 1 To labelrows ActiveDocument.Tables(1).Cell(i, 1).Range.InsertBefore k + (j - 1) * labelcolumns i = i + 1 Next j k = k + 1 i = i - 1 If k Mod labelcolumns = 1 Then k = k - labelcolumns + labelcolumns * labelrows Next i ActiveDocument.Tables(1).Sort FieldNumber:="Column 1" ActiveDocument.Tables(1).Rows(1).Select Selection.Paste ActiveDocument.Tables(1).Columns(1).Delete If the data source is not a table in a Word document, you can use a Directory type mail merge main document to get the data into a table in a Word document so that you can run the above macro. To do that, in the Directory type mail merge main document, insert a one row table into the cells of which you insert the merge fields from your data source. Then when you execute that merge to a new document, that document will contain a table with a row of data for each record in the data source. Insert a row at the top of the table and insert names for the merge fields. Then use the above macro. Another way that you might be able to use is to set up the mail merge main document as a Directory type and format it so that it has three columns and in the first column, insert a one cell table whose dimensions are fixed to match those of the labels that you are going to use. You would also need to set the top and bottom margins of the main document to match those of the labels. Then insert the merge fields into that one cell table in the configuration that you want them and then execute the merge to a new document. -- 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 "GJ Rick" wrote in message ... I'm using a label mail merge to create a 3 column product list. The products should be arranged alphabetically down each column. Word fills the merge across the rows, then down. Can I change that and if so, how? Thanks for your help. Rick |
#3
|
|||
|
|||
Merge down and then across
Hi Rick,
If you set the page up in landscape orientation, with the table laid side-on and rotate the text 90 degrees, you can simulate a down-then-over output. -- Cheers macropod [MVP - Microsoft Word] "GJ Rick" wrote in message ... I'm using a label mail merge to create a 3 column product list. The products should be arranged alphabetically down each column. Word fills the merge across the rows, then down. Can I change that and if so, how? Thanks for your help. Rick |
Thread Tools | |
Display Modes | |
|
|