View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Jodie Jodie is offline
external usenet poster
 
Posts: 72
Default Page set up for all worksheets

John, it worked except it still left the columns with a header in row 1 even
though there is nothing else in the column. Also, I realized that what I
should have asked for was to hide the column if all of the cells are blank or
have a value of 0 (zero). Is this possible? I appreciate your help.
--
Thank you, Jodie


"john" wrote:

Hi jodie,

see if this does what you want (assumes using 2003)

Sub HideEmptyCols()

Dim iCol As Integer
Dim ws As Worksheet

'Excel 2003

Application.ScreenUpdating = False

For Each ws In Worksheets


For iCol = 256 To ws.Range("IV1").End(xlToLeft).Offset(0,
1).Column Step -1

If IsEmpty(ws.Cells(65536, iCol)) And _
IsEmpty(ws.Cells(1, iCol)) Then

If iCol 1 Then

ws.Cells(iCol, iCol).EntireColumn.Hidden = True

Else

ws.Cells(iCol, iCol).EntireColumn.Hidden = False

End If

End If

Next iCol

Next ws

Application.ScreenUpdating = True

End Sub
--
jb


"Jodie" wrote:

This works great. Thank you both. Now, I need to hide columns in these same
worksheets. Are either of you up for that. Idealy, I would like to hide any
columns that are blank after row 1. If that is not possible, I could select
a specific column that I know is blank, column P.
--
Thank you, Jodie


"john" wrote:

not tested but something like following should do what you want.

Sub VBAMacro()
Dim ws As Worksheet

Application.DisplayAlerts = False

With ActiveWorkbook

For Each ws In .Worksheets

With ws.PageSetup

.PrintArea = ""
.PrintGridlines = True
.Orientation = xlLandscape
.PrintTitleRows = ""
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 5

End With

Next ws

.Save

End With

Application.DisplayAlerts = True

End Sub
--
jb


"Jodie" wrote:

Hello,

I am trying to run the following macro for all sheets in a workbook:

Sub VBAMacro()
Cells.Select
Range("D1").Activate
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.PrintGridlines = True
.Orientation = xlLandscape
.PrintTitleRows = ""
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 5
End With
ActiveWorkbook.Save
End Sub

How can I make it work?
--
Thank you, Jodie