#1   Report Post  
gocats
 
Posts: n/a
Default Print Copy limit

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.
  #2   Report Post  
Dave Peterson
 
Posts: n/a
Default

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.


--

Dave Peterson
  #3   Report Post  
gocats
 
Posts: n/a
Default

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.


--

Dave Peterson

  #4   Report Post  
Dave Peterson
 
Posts: n/a
Default

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.


--

Dave Peterson


--

Dave Peterson
  #5   Report Post  
gocats
 
Posts: n/a
Default

Dave

I would like to use "ActiveWindow.SelectedSheets.PrintOut Copies:=20" but I
cannot seem able to incorporate this in a if statement and have correct
syntax. I would prefer this than a message box from an independant macro.

"Dave Peterson" wrote:

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.

--

Dave Peterson


--

Dave Peterson



  #6   Report Post  
Dave Peterson
 
Posts: n/a
Default

Copies has to be a number and =20 isn't a number.

I'm not sure what you mean by the message box stuff.



gocats wrote:

Dave

I would like to use "ActiveWindow.SelectedSheets.PrintOut Copies:=20" but I
cannot seem able to incorporate this in a if statement and have correct
syntax. I would prefer this than a message box from an independant macro.

"Dave Peterson" wrote:

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
  #7   Report Post  
gocats
 
Posts: n/a
Default

Dave

I would like to go File/Print/number of copies etc and have VB restrict the
number of copies per packet less than 20 and when completed pass then next
packet of less than 20 etc.

When I run your routine below it displays a message box asking for the
number of copies which is not quite the same as using the menu selection or
am I missing something?

"Dave Peterson" wrote:

Copies has to be a number and =20 isn't a number.

I'm not sure what you mean by the message box stuff.



gocats wrote:

Dave

I would like to use "ActiveWindow.SelectedSheets.PrintOut Copies:=20" but I
cannot seem able to incorporate this in a if statement and have correct
syntax. I would prefer this than a message box from an independant macro.

"Dave Peterson" wrote:

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

  #8   Report Post  
Dave Peterson
 
Posts: n/a
Default

If you use the built in dialog to print, then I don't think you're gonna have
enough control over what happens next.

I'd use that dedicated macro to print.

gocats wrote:

Dave

I would like to go File/Print/number of copies etc and have VB restrict the
number of copies per packet less than 20 and when completed pass then next
packet of less than 20 etc.

When I run your routine below it displays a message box asking for the
number of copies which is not quite the same as using the menu selection or
am I missing something?

"Dave Peterson" wrote:

Copies has to be a number and =20 isn't a number.

I'm not sure what you mean by the message box stuff.



gocats wrote:

Dave

I would like to use "ActiveWindow.SelectedSheets.PrintOut Copies:=20" but I
cannot seem able to incorporate this in a if statement and have correct
syntax. I would prefer this than a message box from an independant macro.

"Dave Peterson" wrote:

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
  #9   Report Post  
gocats
 
Posts: n/a
Default

Thanks Dave

I was afraid it couldn't be done.

"Dave Peterson" wrote:

If you use the built in dialog to print, then I don't think you're gonna have
enough control over what happens next.

I'd use that dedicated macro to print.

gocats wrote:

Dave

I would like to go File/Print/number of copies etc and have VB restrict the
number of copies per packet less than 20 and when completed pass then next
packet of less than 20 etc.

When I run your routine below it displays a message box asking for the
number of copies which is not quite the same as using the menu selection or
am I missing something?

"Dave Peterson" wrote:

Copies has to be a number and =20 isn't a number.

I'm not sure what you mean by the message box stuff.



gocats wrote:

Dave

I would like to use "ActiveWindow.SelectedSheets.PrintOut Copies:=20" but I
cannot seem able to incorporate this in a if statement and have correct
syntax. I would prefer this than a message box from an independant macro.

"Dave Peterson" wrote:

You could add a line like:

application.wait now + timeserial(0,10,0)

to wait 10 seconds.

Put it right before (or after) the .printout line.



gocats wrote:

Thanks Dave,

Before I test it, what do I require at the start for it to be in VB code,
and how can I alter the time delay before the next 'batch' is sent?

"Dave Peterson" wrote:

Maybe you could use a macro to print what you want in groups of 20.

Option Explicit
Sub testme()

Dim HowManyTotal As Long
Dim HowManyPerGroup As Long
Dim HowManyLastTime As Long
Dim HowManyThisTime As Long
Dim MaxTimes As Long
Dim pCtr As Long

HowManyPerGroup = 20

HowManyTotal = CLng(Application.InputBox(prompt:="how many copies", _
Type:=1))

If HowManyTotal < 1 Then
Exit Sub
End If

MaxTimes = HowManyTotal \ HowManyPerGroup
HowManyLastTime = HowManyTotal Mod HowManyPerGroup

If HowManyLastTime = 0 Then
'evenly divided
HowManyLastTime = HowManyPerGroup
Else
'oh,oh, there was a remainder
'(ask for 312 in groups of 20 means the last time will get 12)
'get those last few
MaxTimes = MaxTimes + 1
End If

For pCtr = 1 To MaxTimes
If pCtr = MaxTimes Then
HowManyThisTime = HowManyLastTime
Else
HowManyThisTime = HowManyPerGroup
End If
ActiveSheet.PrintOut preview:=True, copies:=HowManyThisTime
Next pCtr

End Sub

I print previewed the activesheet. Remove the preview:=true and change what you
want printed when you're done testing.

gocats wrote:

Despite upgraging the printer memory, if the number of print copies is less
than 20 , the laser churns out the copies one after the other. However if
when say 100 print copies is requested, the printer slows between copies as I
understand the buffer is full. How can the number of copies be automated so
that up to 20 print copies per 'batch' is sent and when done the next 'batch'
of up to 20 is sent until the total number print copies is done.

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
reminder notifications in a column L Mieth Excel Discussion (Misc queries) 6 June 10th 05 11:00 AM
Excel won't copy outside sheet Jack Sons Excel Discussion (Misc queries) 6 May 17th 05 10:05 PM
ONE PAGE REPORT WANTS TO PRINT 1311 pages in each copy, WHY? G'pa Woody Excel Discussion (Misc queries) 2 May 10th 05 05:45 PM
print out vishu Excel Discussion (Misc queries) 3 May 6th 05 01:55 PM
copy paste cell character limit Fred Excel Discussion (Misc queries) 1 December 2nd 04 08:58 PM


All times are GMT +1. The time now is 10:21 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"