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 / October 2007

Tip: Looking for answers? Try searching our database.

Word XP mailmerge and Sorting

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
shawn - 04 Oct 2007 15:44 GMT
I have a successful mailmerge project but instead of sorting my printed list
horizontally in my 4 x 7 row list, I would like to sort my listing vertically
or by columns.

Currently:
Label1      Label2      Label3   label4
Label5      Label6      Label7   Label8
......

Preferred:
Label1      Label3      Label5   label7
Label2      Label4      Label6  Label8
......

Thanks in advance for any help.
Graham Mayor - 05 Oct 2007 06:01 GMT
The only way to do this is to create the required order in the data file
before merging. You could do this by running a catalog/directory merge into
a single row table, sort the table, add a header row of fieldnames then use
the following macro from fellow MVP Doug Robbins to sort the data into the
required order.

Sub SortData()
' 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 = "8"    ' Set default.
labelrows = InputBox(Message, Title, Default)
With ActiveDocument.Tables(1)
.Columns.Add BeforeColumn:=ActiveDocument.Tables(1).Columns(1)
.Rows(1).Range.Cut
End With
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

http://www.gmayor.com/installing_macro.htm

> I have a successful mailmerge project but instead of sorting my
> printed list horizontally in my 4 x 7 row list, I would like to sort
[quoted text clipped - 11 lines]
>
> Thanks in advance for any help.
 
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.