Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.mailmerge.fields
anemonejane anemonejane is offline
external usenet poster
 
Posts: 2
Default Direction of mail merging labels

Is there a way to cause the merge data on my 3-across 10-down labels to go
down, not across? I'd like my B's to appear BELOW A's, instead of to the
RIGHT of A's.
  #2   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default Direction of mail merging labels

If your data source is an Access database, it has a label report wizard that
will allow you to do that. If the data source is a table in a Word
document, the following macro will sort the data so that the labels are
printed in the order that you want:

' 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

If the data source is not a Word document, use a catalog (or in Word XP and
later it is called directory) type mailmerge main document to get the data
into the form of a Word table so that you can then use the above macro.

--
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

"anemonejane" wrote in message
...
Is there a way to cause the merge data on my 3-across 10-down labels to go
down, not across? I'd like my B's to appear BELOW A's, instead of to the
RIGHT of A's.



  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
anemonejane anemonejane is offline
external usenet poster
 
Posts: 2
Default Direction of mail merging labels

Excellent!! Thanks much

"Doug Robbins - Word MVP" wrote:

If your data source is an Access database, it has a label report wizard that
will allow you to do that. If the data source is a table in a Word
document, the following macro will sort the data so that the labels are
printed in the order that you want:

' 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

If the data source is not a Word document, use a catalog (or in Word XP and
later it is called directory) type mailmerge main document to get the data
into the form of a Word table so that you can then use the above macro.

--
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

"anemonejane" wrote in message
...
Is there a way to cause the merge data on my 3-across 10-down labels to go
down, not across? I'd like my B's to appear BELOW A's, instead of to the
RIGHT of A's.




  #4   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tammy White Tammy White is offline
external usenet poster
 
Posts: 1
Default Direction of mail merging labels

Hi Doug:

I've tried this several times but keep getting syntax errors. I have not
written (or copied) macros before and do not find the Microsoft site helpful
in resolving this error. I copied my data source from Excel to a Word table
so I could perform the macro, but no use. I can't figure out a way to sort
the table in Excel so that every 6 labels (shipping labels) sort in the
necessary order (more than 800 records in this one file and I do this about 3
times per month all in different files). Any guidance in my ignorance would
be appreciated.

"Doug Robbins - Word MVP" wrote:

If your data source is an Access database, it has a label report wizard that
will allow you to do that. If the data source is a table in a Word
document, the following macro will sort the data so that the labels are
printed in the order that you want:

' 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

If the data source is not a Word document, use a catalog (or in Word XP and
later it is called directory) type mailmerge main document to get the data
into the form of a Word table so that you can then use the above macro.

--
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

"anemonejane" wrote in message
...
Is there a way to cause the merge data on my 3-across 10-down labels to go
down, not across? I'd like my B's to appear BELOW A's, instead of to the
RIGHT of A's.




  #5   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default Direction of mail merging labels

See the article "What do I do with macros sent to me by other newsgroup
readers to help me out?" at:

http://www.word.mvps.org/FAQs/Macros...eateAMacro.htm


--
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

"Tammy White" wrote in message
...
Hi Doug:

I've tried this several times but keep getting syntax errors. I have not
written (or copied) macros before and do not find the Microsoft site
helpful
in resolving this error. I copied my data source from Excel to a Word
table
so I could perform the macro, but no use. I can't figure out a way to
sort
the table in Excel so that every 6 labels (shipping labels) sort in the
necessary order (more than 800 records in this one file and I do this
about 3
times per month all in different files). Any guidance in my ignorance
would
be appreciated.

"Doug Robbins - Word MVP" wrote:

If your data source is an Access database, it has a label report wizard
that
will allow you to do that. If the data source is a table in a Word
document, the following macro will sort the data so that the labels are
printed in the order that you want:

' 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

If the data source is not a Word document, use a catalog (or in Word XP
and
later it is called directory) type mailmerge main document to get the
data
into the form of a Word table so that you can then use the above macro.

--
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

"anemonejane" wrote in message
...
Is there a way to cause the merge data on my 3-across 10-down labels to
go
down, not across? I'd like my B's to appear BELOW A's, instead of to
the
RIGHT of A's.








  #6   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Graham Mayor Graham Mayor is offline
external usenet poster
 
Posts: 19,312
Default Direction of mail merging labels

You probably have prematurely split lines, which will be the case if you
simply copied and pasted Doug's code from the message.
In the following version I have forced some breaks in the hope that it will
copy more successfully - but if there are still problems see
http://www.gmayor.com/installing_macro.htm

The numbers prompted for reflect the label sheet - not your data table.

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 = "5" ' 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


--

Graham Mayor - Word MVP

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

Tammy White wrote:
Hi Doug:

I've tried this several times but keep getting syntax errors. I have
not written (or copied) macros before and do not find the Microsoft
site helpful in resolving this error. I copied my data source from
Excel to a Word table so I could perform the macro, but no use. I
can't figure out a way to sort the table in Excel so that every 6
labels (shipping labels) sort in the necessary order (more than 800
records in this one file and I do this about 3 times per month all in
different files). Any guidance in my ignorance would be appreciated.

"Doug Robbins - Word MVP" wrote:

If your data source is an Access database, it has a label report
wizard that will allow you to do that. If the data source is a
table in a Word document, the following macro will sort the data so
that the labels are printed in the order that you want:

' 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

If the data source is not a Word document, use a catalog (or in Word
XP and later it is called directory) type mailmerge main document to
get the data into the form of a Word table so that you can then use
the above macro.

--
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

"anemonejane" wrote in
message ...
Is there a way to cause the merge data on my 3-across 10-down
labels to go down, not across? I'd like my B's to appear BELOW A's,
instead of to the RIGHT of A's.



Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
mail merging formatted content donna Mailmerge 18 July 28th 06 06:20 PM
Beginners guide to mail merge for labels? Shelley Mailmerge 2 February 20th 06 02:19 PM
30 page mail merge labels only prints one page? Kuda Mailmerge 1 February 9th 06 05:08 AM
Merging labels from excel starts second page with second record Debbie Mailmerge 1 February 8th 06 07:17 PM
I am relicating mail labels in word 2003 and it is not working! Gordiva Microsoft Word Help 1 September 9th 05 05:28 AM


All times are GMT +1. The time now is 03:13 PM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"