![]() |
|
#1
|
|||
|
|||
![]() Code:
Sub MySerial() Dim rngSerialLocation As Range Dim intSerialNum As Integer Dim strSerialNum As String Dim docCurrent As Document Dim intNumCopies As Integer Dim intCount As Integer ' set ref to current active doc Set docCurrent = Application.ActiveDocument ' set ref to the bookmarked serial number Set rngSerialLocation = docCurrent.Bookmarks("Serial").Range ' get the starting number intSerialNum = Val(rngSerialLocation.Text) ' get the number of copies required intNumCopies = Val(InputBox$("How many Copies?", _ "Print Serialized", "1")) For intCount = 1 To intNumCopies ' print the document docCurrent.PrintOut Range:=wdPrintAllDocument ' increment the serial number intSerialNum = intSerialNum + 1 ' put into formatted version strSerialNum = Format(intSerialNum, "00000") ' stuff into proper place rngSerialLocation.Text = strSerialNum Next intCount ' reset the bookmark, since the updating procedure ' wipes out the old one docCurrent.Bookmarks.Add Name:="Serial", _ Range:=rngSerialLocation End Sub Last edited by macropod; 01-18-2018 at 11:39 PM. Reason: Added code tags & deteled unnecessary text bolding. |
#2
|
||||
|
||||
![]()
Try changing:
docCurrent.PrintOut to: docCurrent.PrintOut Background:=True
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]() Quote:
Cheers |
#4
|
|||
|
|||
![]()
I figured out why it prints like this. Firstly, in the for loop, intCount was = 1 instead of 0, that's why it was B&W for the first print. For the out of order, it's due to microsofts' background printing which backlogs the first batch. All I needed to do was disable that and now it works fine.
Here's the code now: Sub MySerial() Dim rngSerialLocation As Range Dim intSerialNum As Integer Dim strSerialNum As String Dim docCurrent As Document Dim intNumCopies As Integer Dim intCount As Integer ' turn off microsoft's print-out organising tool Options.PrintBackground = False ' set ref to current active doc Set docCurrent = Application.ActiveDocument ' set ref to the bookmarked serial number Set rngSerialLocation = docCurrent.Bookmarks("Serial").Range ' get the starting number intSerialNum = Val(rngSerialLocation.Text) ' get the number of copies required intNumCopies = Val(InputBox$("How many Copies?", _ "Print Serialized", "1")) For intCount = 0 To intNumCopies ' print the document docCurrent.PrintOut ' increment the serial number intSerialNum = intSerialNum + 1 ' put into formatted version strSerialNum = Format(intSerialNum, "00000") ' stuff into proper place rngSerialLocation.Text = strSerialNum Next intCount ' reset the bookmark, since the updating procedure ' wipes out the old one docCurrent.Bookmarks.Add Name:="Serial", _ Range:=rngSerialLocation ' turn on microsoft's print-out organising tool Options.PrintBackground = True End Sub |
#5
|
||||
|
||||
![]()
Try changing:
Background:=True to: Background:=False
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
![]() |
Tags |
macros in word, print |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
laneige1990 | Word | 3 | 11-17-2015 03:59 AM |
![]() |
whalescreams | Word | 1 | 12-17-2011 01:14 AM |
Powerpoint printing issues | DWeuve | PowerPoint | 0 | 10-04-2011 08:14 AM |
![]() |
EW-ARRI | Excel | 2 | 08-18-2011 05:38 AM |
![]() |
kns | Excel | 2 | 05-01-2010 02:04 PM |