mail merge data to flow up and down rather than left to right

Z

Zaria

When merging data into labels, how can i make the data merge from excell to
word and have it print up and down rather than left to right?
 
P

Peter Jamieson

There are two possible approaches:
a. design your own label layout using Word columns. e.g. if your label
layout has 3 columns, design a WOrd layout with 3 "newspaper" columns, then
insert either one table with a single column, or 3 tables, each with a
single column
b. sort the records in your data source, e.g. using the following VBA macro
posted previously by Doug Robbins. Some of the lines may need to be put
back together inthe VB Editor. See e.g.

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm

for info on how to use the macro.

' 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


Peter Jamieson
 

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