Loading
Word.Tips.Net WordTips (Menu Interface)

Printing Copy Numbers

Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Printing Copy Numbers.

In a business environment, it is not unusual to print multiple copies of a document. At times, it is beneficial to number the copies. For instance, the first copy would have (perhaps in a header or footer) the text "Copy 1," the second would have "Copy 2," on up to however many copies you have.

One option, of course, is to print the individual copies of the document, making the edits to the copy number between each print. This gets tedious, real fast. You may also want to utilize a sequential numbering field (as discussed in other WordTips) and make the number of copies equal to what you need to print. Thus, if you have to print 25 copies, you could simply copy the entire document (including the sequential numbering field), move to the end of the document, and paste it in another 24 times. This makes for a rather large overall document, however, and there are easier ways to approach the problem.

Perhaps the easiest solution to this problem (short of using a macro) is to simply use the mail-merge capabilities of Word. You would use a simple data source that contained the numbers you want assigned to each copy. Then, place the merge field at the appropriate place in y our document, and run the merge. Each copy will contain the desired copy number. The added benefit of using this approach is that you can use additional information with your merge, as needs dictate. For instance, if each copy of the document was assigned to a particular person, you could simply add another data field to your data source that contained the name of the person to receive the copy. Then, you could print that person's name in each merged document, as well.

If you prefer, you can use a macro to print out your numbered copies. For instance, the following macro asks you how many copies you want to print, along with the starting copy number to use. (This comes in real handy if you print 25 copies, and then someone asks you to print a second batch of 10, numbered 26 through 35.) The macro also stores the last copy number between sessions, so that it is used as the default when you next run the macro.

Public Sub PrintNumberedCopies1()
    Dim varItem As Variable
    Dim bExists As Boolean
    Dim lCopiesToPrint As Long
    Dim lCounter As Long
    Dim lCopyNumFrom As Long

    ' ensure our doc variable exists
    bExists = False
    For Each varItem In ActiveDocument.Variables
        If varItem.Name = "CopyNum" Then
            bExists = True
            Exit For
        End If
    Next varItem

    ' initialize document variable if doesn't exist
    If Not bExists Then
        ActiveDocument.Variables.Add _
            Name:="CopyNum", Value:=0
    End If

    ' ask how many to print
    lCopiesToPrint = InputBox( _
        Prompt:="How many copies?", _
        Title:="Print And Number Copies", _
        Default:="1")

    ' ask where to start numbering
    lCopyNumFrom = CLng(InputBox( _
        Prompt:="Number at which to start numbering copies?", _
        Title:="Print And Number Copies", _
        Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))

    ' loop through the print-write-print cycle
    For lCounter = 0 To lCopiesToPrint - 1
        ' update the document variable
        ActiveDocument.Variables("CopyNum") = _
            lCopyNumFrom + lCounter
        ' print this numbered copy
        ActiveDocument.PrintOut Copies:=1
    Next lCounter
End Sub

In order to use this macro, there are two other things you need to do. First, you need to indicate in your document where you want the copy number to appear. At the point where it should print, simply insert the following field (remember that you insert the field braces by pressing Ctrl+F9):

{ DOCVARIABLE "CopyNum" }

The second thing you need to do is make sure that Word is configured so that it updates fields when it prints. Now, when you run the macro, you are asked how many copies to print and what starting number to use. The document variable is updated and a single copy of the document is printed. These steps are repeated for the number of times that you chose to print.

Unfortunately, this macro solution will not work in all versions of Word. For instance, if you place the DOCVARIABLE field in the header of a Word 97 document and then print the document, Word will promptly crash.

How to get around this? Simply use a different approach. (Word is nothing, if not flexible.) The following macro works in all modern versions of Word. It is a variation of the earlier one that relies on the use of custom document properties instead of document variables.

Public Sub PrintNumberedCopies2()
    Dim varItem As DocumentProperty
    Dim bExists As Boolean
    Dim lCopiesToPrint As Long
    Dim lCounter As Long
    Dim lCopyNumFrom As Long

    ' ensure our doc variable exists
    bExists = False
    For Each varItem In ActiveDocument.CustomDocumentProperties
        If varItem.Name = "CopyNum" Then
            bExists = True
            Exit For
        End If
    Next varItem

    ' initialize document variable if doesn't exist
    If Not bExists Then
        ActiveDocument.CustomDocumentProperties.Add _
            Name:="CopyNum", LinkToContent:=False, _
            Type:=msoPropertyTypeNumber, Value:=0
    End If

    ' ask how many to print
    lCopiesToPrint = InputBox( _
        Prompt:="How many copies?", _
        Title:="Print And Number Copies", _
        Default:="1")

    ' ask where to start numbering
    lCopyNumFrom = CLng(InputBox( _
        Prompt:="Number at which to start numbering copies?", _
        Title:="Print And Number Copies", _
        Default:=CStr(ActiveDocument.CustomDocumentProperties("CopyNum") + 1)))

    ' loop through the print-write-print cycle
    For lCounter = 0 To lCopiesToPrint - 1
        ' update the document variable
        ActiveDocument.CustomDocumentProperties("CopyNum") = _
            lCopyNumFrom + lCounter
        ' print this numbered copy
        ActiveDocument.PrintOut Copies:=1
    Next lCounter
End Sub

In order to use this macro, there are two other things you need to do. First, you need to indicate in your document where you want the copy number to appear. At the point where it should print, simply insert the following field (remember that you insert the field braces by pressing Ctrl+F9):

{ DOCPROPERTY "CopyNum" }

When you first insert the field, you may see an error message returned by the field, such as "Error! Unknown document property name." Don't worry; this will go away and be replaced by the proper copy number after you run the macro.

The second thing you need to do is make sure that Word is configured so that it updates fields when it prints. Now, when you run the macro, you are asked how many copies to print and what starting number to use. The document variable is updated and a single copy of the document is printed. These steps are repeated for the number of times that you chose to print.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (844) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Printing Copy Numbers.

Related Tips:

Add a Professional Finishing Touch! Word includes great tools that allow you to add professional-grade finishing touches to your documents. You can add indexes, tables of contents, and other special tables by using the detailed information available in this volume. Check out WordTips: Indexes and Special Tables today!

 

Comments for this tip:

GLENN    09 Jun 2014, 04:10
THIS MACRO WORKS PERFECTLY.... BUT...

THE NUMBER THAT I ASSIGN DOES NOT SHOW UP WHEN I PRINT.

IS THERE A SETTING IN WORD THAT I NEED TO CHANGE?
Adam     12 Nov 2013, 16:18
Is it possible to use this macro in Excel?

Leave your own comment:

*Name:
Email:
  Notify me about new comments ONLY FOR THIS TIP
Notify me about new comments ANYWHERE ON THIS SITE
Hide my email address
*Text:
*What is 3+4? (To prevent automated submissions and spam.)
 
          Commenting Terms
 
 

Our Company

Sharon Parq Associates, Inc.

About Tips.Net

Contact Us

 

Advertise with Us

Our Privacy Policy

Our Sites

Tips.Net

Beauty and Style

Cars

Cleaning

Cooking

DriveTips (Google Drive)

ExcelTips (Excel 97–2003)

ExcelTips (Excel 2007–2013)

Gardening

Health

Home Improvement

Money and Finances

Organizing

Pests and Bugs

Pets and Animals

WindowsTips (Microsoft Windows)

WordTips (Word 97–2003)

WordTips (Word 2007–2013)

Our Products

Premium Newsletters

Helpful E-books

Newsletter Archives

 

Excel Products

Word Products

Our Authors

Author Index

Write for Tips.Net

Copyright © 2014 Sharon Parq Associates, Inc.