If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
Printing labels
I have standard labels 21 per sheet on A4 paper.
Label size 64mm x 38mm. I want to print on them from top to bottom ie. portait rather than from side to side (landscape). How can I do this with Word 2003. I know it must be possible but I have just about given up. Would appreciate any help on this. Cheers |
#2
|
|||
|
|||
Printing labels
I assume that you are talking about using mailmerge and that rather than
physically turning the page on its side, you mean to print down then accross rather that across and then down. If that is the case, and the datasource is a table in a Word document, run the following macro on that document. If the data source is not a table in a Word document, use a catalog or directory type mailmerge to create a table in a Word document that contains all of the records and then add a header row to that table and then 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 -- Please post any further questions or followup to the newsgroups for the benefit of others who may be interested. Unsolicited questions forwarded directly to me will only be answered on a paid consulting basis. Hope this helps Doug Robbins - Word MVP "john" wrote in message ... I have standard labels 21 per sheet on A4 paper. Label size 64mm x 38mm. I want to print on them from top to bottom ie. portait rather than from side to side (landscape). How can I do this with Word 2003. I know it must be possible but I have just about given up. Would appreciate any help on this. Cheers |
Thread Tools | |
Display Modes | |
|
|