 |
|
|
|
 |
Sequentially numbering multiple copies of single document using a macro
|
Article contributed by Doug Robbins
Create a bookmark named SerialNumber in the document where you want the Serial Number to appear. It can be in the header or footer if that is
where you want the number. Then create a macro containing the following commands
to print the document.
It will ask for the number of copies that you want to make and sequentially
number each copy.The first time this macro runs, the first copy will be
numbered 1 and when it finishes running, it will store in aSettings.Txt file
the number that is one more that the number on the last copy.The next time the
macro is run, it will start numbering the copies from that number. If when you
first start, you want the numbers to start at some number other than 1, run the
macro, entering 1 as the number of copies and then open Settings.Txt file and
replace the number in the file with the number that you want as the first in
the series.At any time thereafter, if you want the series to start at a
particular number, you can open that file and replace the number in it with the
number that you want to be the first in the series.
Dim Message As String, Title As
String, Default As String, NumCopies As Long
Dim Rng1 As Range
' Set prompt.
Message = "Enter the number of copies that you want to print"
' Set title.
Title = "Print"
' Set default.
Default = "1"
' Display message, title, and default value.
NumCopies = Val(InputBox(Message, Title, Default))
SerialNumber = System.PrivateProfileString("C:\Settings.Txt", _
"MacroSettings", "SerialNumber")
If SerialNumber = "" Then
SerialNumber = 1
End If
Set Rng1 = ActiveDocument.Bookmarks("SerialNumber").Range
Counter = 0
While Counter < NumCopies
Rng1.Delete
Rng1.Text = SerialNumber
ActiveDocument.PrintOut
SerialNumber = SerialNumber + 1
Counter = Counter + 1
Wend
'Save the next number back to the Settings.txt file ready for the next use.
System.PrivateProfileString("C:\Settings.txt", "MacroSettings", _
"SerialNumber") = SerialNumber
'Recreate the bookmark ready for the next use.
With ActiveDocument.Bookmarks
.Add Name:="SerialNumber", Range:=Rng1
End With
ActiveDocument.Save
If you want the Serial Number to appear in a particular format, e.g. 001, 002, etc, replace the line
Rng1.Text = SerialNumber
with
Rng1.Text = Format(SerialNumber, "00#")
See also Creating sequentially numbered documents (such as invoices)
and Sequentially numbering multiple copies of single document using a mailmerge.
|





|