column

G

Guest

I have a range with 3 columns and about 120 records. When left in this
format it prints 3 columns over two pages using only 1/2 of each page. I
want excel to print my data on one page with six columns (two ranges with the
same headings). This is an active database that is changed regularly so for
me to cut and paste is not effecient enough.
 
B

Bob Phillips

Here's an interesting little trick that I picked up from Tom Ogilvy the
other day

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet
.Range("A61:B120").Copy Destination:=Range("C1")
.Range("A61:B120").ClearContents
Application.EnableEvents = False
.PrintOut
.Range("C1:D60").Copy Destination:=Range("A61")
.Range("C1:D60").ClearContents
Cancel = True
Application.EnableEvents = True
End With
End Sub


'This is workbook event code.
'To input this code, right click on the Excel icon on the worksheet
'(or next to the File menu if you maximise your workbooks),
'select View Code from the menu, and paste the code

You might want to add a test for the specific worksheet name if there are
many.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
R

RagDyeR

Check out this web page of David McRitchie:

http://www.mvps.org/dmcritchie/excel/snakecol.htm
--

HTH,

RD
==============================================
Please keep all correspondence within the Group, so all may benefit!
==============================================

I have a range with 3 columns and about 120 records. When left in this
format it prints 3 columns over two pages using only 1/2 of each page. I
want excel to print my data on one page with six columns (two ranges with
the
same headings). This is an active database that is changed regularly so for
me to cut and paste is not effecient enough.
 
B

Bob Phillips

Slight adjustment to the spec, and error handling :)

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet
.Range("A61:C120").Copy Destination:=Range("D1")
.Range("A61:C120").ClearContents
On Error Goto cleanup
Application.EnableEvents = False
.PrintOut
.Range("D1:F60").Copy Destination:=Range("A61")
.Range("D1:F60").ClearContents
Cancel = True
End With
cleanup:
Application.EnableEvents = True
End Sub
 
G

Guest

Thank you, Bob. I have only one problem. When I right click and open view
code the microsoft visual basic window opens. How do enter info? Almost all
menu items are disabled and I cannot copy/pasted anywhere. The visual basic
help menu is no help whatsoever.
 
B

Bob Phillips

Is the workbook protected or shared?

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
G

Guest

I did not know that it was shared. I removed the sharing and was able to
paste the workbook event code. It works nearly flawlessly. The only
glitches are my header row not extending across all six columns. Also my
database ends up with almost all records on one page with 5-10 records each
on two other pages. I will adjust my sheet and page settings to see if this
corrects my problem. Thank you very much, Bob, and if continue to encounter
problems I'll post my questions.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top