Excel does not have great word processing capabilities because it is basically a
number crunching application, unlike Word which is designed for word processing.
That is why MS has developed the MS Office Suite with several
applications........one application cannot possibly do it all.
I don't work for Microsoft.
If not familiar with VBA and macros, see David McRitchie's site for more on
"getting started".
http://www.mvps.org/dmcritchie/excel/getstarted.htm
In the meantime..........
First...create a backup copy of your original workbook.
To create a General Module, hit ALT + F11 to open the Visual Basic Editor.
Hit CRTL + R to open Project Explorer.
Find your workbook/project and select it.
Right-click and InsertModule. Paste the code in there. Save the
workbook and hit ALT + Q to return to your workbook.
Run the macro by going to ToolMacroMacros.
You can also assign this macro to a button or a shortcut key combo.
Gord
On Thu, 3 Aug 2006 06:54:01 -0700, JOE wrote:
UH....I will give these a try. Much much more than I ever anticipated!
Anyone know why it is not just a simple push button command like in Word?!
Do either of you guys happen to work for Microsoft?
Thanks for the help!
"Gord Dibben" wrote:
Joe
This macro will snake 4 columns into 12
Public Sub Snake4to12()
Dim myRange As Range
Dim colsize As Long
Dim maxrow As Long
Const numgroup As Integer = 3
Const NUMCOLS As Integer = 12
On Error GoTo fileerror
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, (NUMCOLS - 1)).Address)
myRange.Cut Destination:=ActiveSheet.Range("A1") _
.Offset(0, ((NUMCOLS - 1) - numgroup))
Range("A1").Select
Cells.End(xlDown).Offset(1, 0).Select
Set NextRange = Range(ActiveCell.Address & ":" _
& ActiveCell.Offset(-colsize, (numgroup)).Address)
NextRange.Cut Destination:=ActiveSheet.Range("A1") _
.Offset(0, (NUMCOLS / numgroup))
Application.CutCopyMode = False
Range("A1").Select
fileerror:
End Sub
Gord Dibben MS Excel MVP
On Wed, 2 Aug 2006 12:42:10 -0700, JOE wrote:
I have a narrow (4 columns) but long (2200 rows) spreadsheet. I am trying to
print in multiple columns on one page (i.e. "newspaper colmns") before it
moves to page 2, etc. I am trying to avoid having 40 pages with one narrow
set of information on the page. I want it to print 2 or 3 "columns" on one
page before it moves to the next page.