ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Open file and print sheets based on data in cell (https://www.excelbanter.com/excel-programming/338052-open-file-print-sheets-based-data-cell.html)

Steph[_6_]

Open file and print sheets based on data in cell
 
Hi everyone. In column A I have the full path of a file. In columns B
through AZ I have sheet names within that file. How can I code excel to
open the file in A1, print the sheets in B1 through AZ1, then close the
file, then move to the next row and do the same until all rows containing
data in column A have been looped though? Thank you in advance.

PS - Some files may only have 2 sheets to be printed, so D1 through AZ1 may
be blank.




Tom Ogilvy

Open file and print sheets based on data in cell
 
Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1)
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 = Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
Next
End if
Next

--
Regards,
Tom Ogilvy

"Steph" wrote in message
...
Hi everyone. In column A I have the full path of a file. In columns B
through AZ I have sheet names within that file. How can I code excel to
open the file in A1, print the sheets in B1 through AZ1, then close the
file, then move to the next row and do the same until all rows containing
data in column A have been looped though? Thank you in advance.

PS - Some files may only have 2 sheets to be printed, so D1 through AZ1

may
be blank.






Steph[_6_]

Open file and print sheets based on data in cell
 
Thanks Tom!

"Tom Ogilvy" wrote in message
...
Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1).Cells
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 = Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if lcase(cell1.Value) = "all" then
bk.printout
exit for
else
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
end if
Next
End if
Next

Hopefully there are no sheets named All.

--
Regards,
Tom Ogilvy


"Steph" wrote in message
...
Hi Tom. Thanks for the response. Can I ask for one enhancement? I

have
a
few files that have 30 or so pages in them, ALL of which need to be

printed.
Is it possible to edit the code to also allow for the entry "All" in

column
B rather than naming each specific sheet, where that woul trigger excel

to
print all pages within that workbook?

Thanks so much for your help!!

"Tom Ogilvy" wrote in message
...
Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1)
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 =

Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
Next
End if
Next

--
Regards,
Tom Ogilvy

"Steph" wrote in message
...
Hi everyone. In column A I have the full path of a file. In

columns
B
through AZ I have sheet names within that file. How can I code

excel
to
open the file in A1, print the sheets in B1 through AZ1, then close

the
file, then move to the next row and do the same until all rows

containing
data in column A have been looped though? Thank you in advance.

PS - Some files may only have 2 sheets to be printed, so D1 through

AZ1
may
be blank.












Tom Ogilvy

Open file and print sheets based on data in cell
 
forgot to close the workbooks:

Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1).Cells
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 = Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if lcase(cell1.Value) = "all" then
bk.printout
exit for
else
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
end if
Next
bk.close SaveChanges:=False
End if
Next

--
Regards,
Tom Ogilvy

"Steph" wrote in message
...
Thanks Tom!

"Tom Ogilvy" wrote in message
...
Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1).Cells
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 = Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if lcase(cell1.Value) = "all" then
bk.printout
exit for
else
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
end if
Next
End if
Next

Hopefully there are no sheets named All.

--
Regards,
Tom Ogilvy


"Steph" wrote in message
...
Hi Tom. Thanks for the response. Can I ask for one enhancement? I

have
a
few files that have 30 or so pages in them, ALL of which need to be

printed.
Is it possible to edit the code to also allow for the entry "All" in

column
B rather than naming each specific sheet, where that woul trigger

excel
to
print all pages within that workbook?

Thanks so much for your help!!

"Tom Ogilvy" wrote in message
...
Dim rng as Range, rng1 as Range
Dim cell as Range, cell1 as Range
Dim bk as Workbook
set rng = Range("A1").CurrentRegion.columns(1)
for each cell in rng
if trim(cell.value) < "" then
set bk = Workbooks.Open(cell.Value)
set rng1 =

Cell.offset(0,1).Resize(1,51).SpecialCells(xlConst ants)
for each cell1 in rng1
if trim(cell1.Value) < "" then
bk.worksheets(cell1.Value).Printout
end if
Next
End if
Next

--
Regards,
Tom Ogilvy

"Steph" wrote in message
...
Hi everyone. In column A I have the full path of a file. In

columns
B
through AZ I have sheet names within that file. How can I code

excel
to
open the file in A1, print the sheets in B1 through AZ1, then

close
the
file, then move to the next row and do the same until all rows
containing
data in column A have been looped though? Thank you in advance.

PS - Some files may only have 2 sheets to be printed, so D1

through
AZ1
may
be blank.















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

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