![]() |
| If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|||||||
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
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 |
| Ads |
|
#2
|
|||
|
|||
|
sub Main()
dim ws as worksheet for each ws in worksheets ws.activate VBAMacro next End Sub "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 |
|
#3
|
|||
|
|||
|
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 |
|
#4
|
|||
|
|||
|
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 |
|
#5
|
|||
|
|||
|
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 |
|
#6
|
|||
|
|||
|
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 |
|
#7
|
|||
|
|||
|
Hi jodie,
sorry for slow reply, went out for evening. see if this mod helps: Sub HideEmptyCols() Dim iCol As Integer Dim ws As Worksheet Dim rRange As Range 'Excel 2003 Application.ScreenUpdating = False For Each ws In Worksheets For iCol = 256 To 2 Step -1 If Application.WorksheetFunction.Sum(ws.Range(ws.Cell s(2, iCol), _ ws.Cells(65536, iCol))) = 0 Then ws.Cells(, iCol).EntireColumn.Hidden = True End If Next iCol Next ws Application.ScreenUpdating = True End Sub -- jb "Jodie" wrote: > 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 |
|
#8
|
|||
|
|||
|
Hi John, I hope you had a fun weekend.
I tried this out and it is hiding my columns that are blank and the colums that have an alpha value. The columns with zero are still present. Is there something that I can change that will keep the alpha columns and hide the zero columns? -- Thank you, Jodie "john" wrote: > Hi jodie, > sorry for slow reply, went out for evening. > > see if this mod helps: > > Sub HideEmptyCols() > > Dim iCol As Integer > Dim ws As Worksheet > Dim rRange As Range > > 'Excel 2003 > > Application.ScreenUpdating = False > > > For Each ws In Worksheets > > For iCol = 256 To 2 Step -1 > > If Application.WorksheetFunction.Sum(ws.Range(ws.Cell s(2, iCol), _ > > ws.Cells(65536, iCol))) = 0 Then > > ws.Cells(, iCol).EntireColumn.Hidden = True > > End If > > Next iCol > > Next ws > > Application.ScreenUpdating = True > > End Sub > -- > jb > > > "Jodie" wrote: > > > 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 |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Summary page for 12 worksheets | ACM | Excel Discussion (Misc queries) | 11 | January 15th 08 12:06 PM |
| Printing several worksheets as on page | Coenie Brand | Excel Programming | 2 | June 29th 07 02:38 PM |
| Add page numbers to multiple worksheets without changing page setu | alatona | Excel Discussion (Misc queries) | 2 | March 16th 07 07:23 PM |
| Printing multiple page worksheets on 1 single page | Hope | Excel Discussion (Misc queries) | 1 | January 7th 07 03:56 AM |
| How do I use 2 worksheets in 1 page | merry_fay | Excel Worksheet Functions | 2 | June 1st 05 03:06 PM |