ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help needed to solve printing error (https://www.excelbanter.com/excel-programming/336649-help-needed-solve-printing-error.html)

madbloke[_23_]

Help needed to solve printing error
 

I have the following code set up to print varying numbers of exce
workbooks, based on info from a master list, and it works fine, excep
for one thing. Whenever it comes across an item which requires 0 (zero
prints, it returns an error saying the number must be between 1 an
63212 (or something).

Any ideas on how I can get the macro to skip items which don't requir
printing?

Sub Printitem()

Dim a As String
Dim b As Integer
Dim c As Integer


'go down the list getting the name of the workbook and
'the amount needed

For b = 2 To Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row

'a gets the name of the workbook
a = Worksheets("Sheet1").Cells(b, 1).Value

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook

Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & a
".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False

'loop till end

Next b

End Su

--
madblok
-----------------------------------------------------------------------
madbloke's Profile: http://www.excelforum.com/member.php...fo&userid=1442
View this thread: http://www.excelforum.com/showthread.php?threadid=39378


Snake Plissken[_2_]

Help needed to solve printing error
 
what about that:

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook


if c < 0 then

Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & a &
".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False


else

ActiveWorkbook.Close False

end if


'loop till end

Next b

End Sub




madbloke[_24_]

Help needed to solve printing error
 

Thanks for that, but unfortunately doesnt work. Using your amendments,
if it hits a 0, it closes the master sheet.

I amended it so that it opened the unneeded sheet and then closed it
without printing, which worked, but took a long time (there's about 500
sheets to go through!)

What I need it to do ideally is ignore any unneeded sheets and just
open and print the ones I do need.

Snake Plissken Wrote:
what about that:

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook


if c < 0 then

Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & a &
".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False


else

ActiveWorkbook.Close False

end if


'loop till end

Next b

End Sub




--
madbloke
------------------------------------------------------------------------
madbloke's Profile: http://www.excelforum.com/member.php...o&userid=14422
View this thread: http://www.excelforum.com/showthread...hreadid=393788


Snake Plissken[_2_]

Help needed to solve printing error
 

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook


if c < 0 then

Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & a &
".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False


' right - so it looks that <else command and next line is not required...


end if


'loop till end

Next b

End Sub



Dave Peterson

Help needed to solve printing error
 
Option Explicit
Sub Printitem()

Dim a As String
Dim b As Long
Dim c As Long

'go down the list getting the name of the workbook and
'the amount needed

For b = 2 To Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row

'a gets the name of the workbook
a = Worksheets("Sheet1").Cells(b, 1).Value

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook
If c 0 Then
Workbooks.Open ThisWorkbook.Path _
& Application.PathSeparator & a & ".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False
End If
'loop till end
Next b

End Sub

(Just making it easier to read.)


madbloke wrote:

I have the following code set up to print varying numbers of excel
workbooks, based on info from a master list, and it works fine, except
for one thing. Whenever it comes across an item which requires 0 (zero)
prints, it returns an error saying the number must be between 1 and
63212 (or something).

Any ideas on how I can get the macro to skip items which don't require
printing?

Sub Printitem()

Dim a As String
Dim b As Integer
Dim c As Integer

'go down the list getting the name of the workbook and
'the amount needed

For b = 2 To Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row

'a gets the name of the workbook
a = Worksheets("Sheet1").Cells(b, 1).Value

'c gets the number of prints needed
c = Worksheets("Sheet1").Cells(b, 8).Value

'print needed amount of workbook

Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & a &
".xls"
ActiveSheet.PrintOut Copies:=c
ActiveWorkbook.Close False

'loop till end

Next b

End Sub

--
madbloke
------------------------------------------------------------------------
madbloke's Profile: http://www.excelforum.com/member.php...o&userid=14422
View this thread: http://www.excelforum.com/showthread...hreadid=393788


--

Dave Peterson

madbloke[_25_]

Help needed to solve printing error
 

Spot on! Cheers.

I'd fallen into the trap of assuming an IF needed an ELSE

--
madblok
-----------------------------------------------------------------------
madbloke's Profile: http://www.excelforum.com/member.php...fo&userid=1442
View this thread: http://www.excelforum.com/showthread.php?threadid=39378



All times are GMT +1. The time now is 12:11 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com