Print two sets of columns per page

A

AnotherNewGuy

I have a simple list of items that keeps growing. Periodically, I print that
list with an empty column B for hand written notes. it's narrow enough that
I'd like to print it with Column A and B down the left side of the page, then
start at the top of the left half and down again. Obviously, the intent is
to use half the paper.

Right now, I'm just copying the list to a new spreadsheet, setting up the
page in Page Setup, and cutting and pasting manually.

Is there a better way?

thx
 
H

Highland Cow

Your printer will probably allow you to print 2 pages per sheet just go to
options in page setup or choose File and Print properties.
 
A

AnotherNewGuy

That works except everything is half size. It changes the 8.5 x 11 page to
two 5.5 x 8.5 pages and shrinks to fit, still leaving more than half of each
page blank. But it gives me something to play with. Thx.
 
G

Gord Dibben

Public Sub Snake2to4()
Dim myRange As Range
Dim colsize As Long
Dim maxrow As Long
Const numgroup As Integer = 2
Const NUMCOLS As Integer = 4
On Error GoTo fileerror
Columns("A:B").Select
colsize = Int((ActiveSheet.UsedRange.Rows.Count + _
((NUMCOLS - 1)) / NUMCOLS)) / numgroup
MsgBox "Number of Rows to Move is: " & colsize
Range("A1").Select
With ActiveCell.Parent.UsedRange
maxrow = .Cells(.Cells.Count).Row + 1
End With
ActiveCell.Parent.Cells(maxrow, ActiveCell.Column) _
.End(xlUp).Offset(1, 0).Select
Set myRange = Range(ActiveCell.Address & ":" _
& ActiveCell.Offset(-colsize, (numgroup)).Address)
myRange.Cut Destination:=ActiveSheet.Range("C1")
Application.CutCopyMode = False
Range("A1").Select

fileerror:
End Sub


Gord Dibben MS Excel MVP
 
A

AnotherNewGuy

Thank you, Gordon. Actually, I want to start at the top left of page one,
skip to the top right, then to the top left of page two, etc.

But what you did here showed me how to get moving. Very helpful.
 
G

Gord Dibben

Maybe something like this...........?

Sub Move_Sets_PBreak()
Dim iSource As Long
Dim iTarget As Long

iSource = 1
iTarget = 1

Do
Cells(iSource, "A").Resize(50, 2).Cut _
Destination:=Cells(iTarget, "A")
Cells(iSource + 50, "A").Resize(50, 2).Cut _
Destination:=Cells(iTarget, "C")

iSource = iSource + 100
iTarget = iTarget + 50

PageBreak = xlPageBreakManual
Loop Until IsEmpty(Cells(iSource, "A").Value)

End Sub


Gord
 
A

AnotherNewGuy

Works great! I just need to edit for page length and make sure it doesn't
change.

thx
 
G

Gord Dibben

Thanks for the feedback.

When editing the Resize(50, 2) which is rows and columns don't forget to
edit also

iSource = iSource + 100
iTarget = iTarget + 50


Gord
 
A

AnotherNewGuy

I got it. I got all ambitious and set up the worksheet as landscape and
added two more columns. Working through the logic and making the necessary
changes was very helpful. Again, many thanks.
 
G

Gord Dibben

Good to hear.

Thanks for the feedback.

Gord

I got it. I got all ambitious and set up the worksheet as landscape and
added two more columns. Working through the logic and making the necessary
changes was very helpful. Again, many thanks.
 
B

Bex

My list is 3 columns in width but I'd like to print 2 sets of columns per
page, how could I tweak this formula to fit my circumstances?
 
B

Bex

My list is 3 columns in width but I'd like to print 2 sets of columns per
page, how could I tweak this formula to fit my circumstances?
 

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