Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Mailmerge and Fax / February 2005

Tip: Looking for answers? Try searching our database.

layout

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Tony & Bonnie - 19 Feb 2005 16:17 GMT
I would like to know how to set up the mail merge to place the data on the
page top-to-bottom instead of left-to-right
Graham Mayor - 19 Feb 2005 18:17 GMT
Do you mean labels? The short answer is that you can't do this. You could,
however create a new data file in the correct order to make it appear that
you have merged top to bottom. Fellow MVP Doug Robbins produced the
following method and macro that will do the trick:

Create a catalog or directory type mailmerge with your original data file,
to get the data into the form of word table. Add a row at the top into which
you insert the names of the mergefields and then run this macro with that
document open, it will sort the table into the revised order required. Save
the file and use it as the data source for your label mailmerge, the labels
will be in the order that you want:

Sub UpAndDown()
' 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
End Sub

Signature

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor -  Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>

> I would like to know how to set up the mail merge to place the data
> on the page top-to-bottom instead of left-to-right
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.