Mail Merge label layout

F

Faye

I'm using mail merge to create labels.

By default, Word lays them out horizontally.

I'd like to have them laid out vertically.

Example:
What Word does by default:
label_1 label_2 label_3
label_4 label_5 label_6
label_7 label_8 label_9

What I want:
label_1 label_4 label_7
label_2 label_5 label_8
label_3 label_6 label_9

Any ideas?

Thanks,
Faye
 
D

Doug Robbins - Word MVP

If your data source is Access, it has a label form wizard and you can use
File>Page setup to control the way in which the labels are ordered - accross
then down or down the accross.

If the data source is a Word table, run the following macro on that
document:

' Macro created by Doug Robbins 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 something esle, first use a catalog or directory type
mailmerge with the merge fields in the first row of a one row table to
create a document with all of the data in a table, then add a header row and
then run the above macro.

--
Please post any further questions or followup to the newsgroups for the
benefit of others who may be interested. Unsolicited questions forwarded
directly to me will only be answered on a paid consulting basis.

Hope this helps
Doug Robbins - Word MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top