pealing labels from left to right on a sheet of labels is cumbersome, and it
has to be done if coellating letters to envelopes, etcetera. I wanted a mail
merge that printed my labels top to bottom per column instead.
I search around, some said create a macro/vba function...
1) A little page setup on the margins to match the label. (Hint, make the
bottom margin a little shorter to allow for that troublesome last carriage
return that seems to bump you to a new page.)
2) Then I created COLUMNS [Format, Columns] that matched my labels
3) Now Create a table with only ONE column with the proper amount of rows to
match a page of labels.
4) Set the row height to the height of one label [Exactly, not At Lease]
5) With the mail merge tool bar open, click on the "Open Data Source" button.
6) Set up a cell with your fields the way you want them to display.
7) Copy and paste the Contents of the cell into the next cell below.
8) Insert a Word Field "Next Record" before your text in the second cell.
9) Copy that cell's contents and paste into all other cells.
10) MERGE ON! [merge to print or new document]
and voila! Your labels print top to bottom because they are following the
column and not the tab order of a three column table.
Doug Robbins - Word MVP - 17 Jan 2008 19:44 GMT
' 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

Signature
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
> pealing labels from left to right on a sheet of labels is cumbersome, and
> it
[quoted text clipped - 32 lines]
>
> http://www.microsoft.com/office/community/en-us/default.mspx?mid=a651e53d-24eb-4
953-86f1-3c9354b9f482&dg=microsoft.public.word.mailmerge.fields
vbasean - 18 Jan 2008 15:54 GMT
just curious, will this work on those lables templates that have those extra
columns in them for spacing?
> pealing labels from left to right on a sheet of labels is cumbersome, and it
> has to be done if coellating letters to envelopes, etcetera. I wanted a mail
[quoted text clipped - 27 lines]
>
> http://www.microsoft.com/office/community/en-us/default.mspx?mid=a651e53d-24eb-4
953-86f1-3c9354b9f482&dg=microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP - 19 Jan 2008 10:38 GMT
Yes.

Signature
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
> just curious, will this work on those lables templates that have those
> extra
[quoted text clipped - 39 lines]
>>
>> http://www.microsoft.com/office/community/en-us/default.mspx?mid=a651e53d-24eb-4
953-86f1-3c9354b9f482&dg=microsoft.public.word.mailmerge.fields