Print two sets of columns per page

  • Thread starter Thread starter AnotherNewGuy
  • Start date Start date
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
 
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.
 
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.
 
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
 
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.
 
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
 
Works great! I just need to edit for page length and make sure it doesn't
change.

thx
 
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
 
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.
 
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.
 
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?
 
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?
 
Back
Top