Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi all,
I use the following code to print all visible worksheets. Can it be modified to NOT print a worksheet which is called "Main"? thanks! Sub Print_Visible_Worksheets() 'xlSheetVisible = -1 Dim sh As Worksheet Dim arr() As String Dim N As Integer N = 0 For Each sh In ThisWorkbook.Worksheets If sh.Visible = -1 Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = sh.Name End If Next With ThisWorkbook .Worksheets(arr).PrintOut .Worksheets(1).Select End With End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Tom,
Try something like: '============= Public Sub Print_Visible_Worksheets() Dim sh As Worksheet Dim arr() As String Dim N As Long Const sStr As String = "Main" '<<=== CHANGE For Each sh In ThisWorkbook.Worksheets With sh If .Visible = xlSheetVisible Then If StrComp(.Name, sStr, vbTextCompare) Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = .Name End If End If End With Next sh With ThisWorkbook .Worksheets(arr).PrintPreview 'PrintOut .Worksheets(1).Select End With End Sub '<<============= --- Regards, Norman "Tom" wrote in message ... Hi all, I use the following code to print all visible worksheets. Can it be modified to NOT print a worksheet which is called "Main"? thanks! Sub Print_Visible_Worksheets() 'xlSheetVisible = -1 Dim sh As Worksheet Dim arr() As String Dim N As Integer N = 0 For Each sh In ThisWorkbook.Worksheets If sh.Visible = -1 Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = sh.Name End If Next With ThisWorkbook .Worksheets(arr).PrintOut .Worksheets(1).Select End With End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Works like a charm!
Thanks Norman! "Norman Jones" wrote: Hi Tom, Try something like: '============= Public Sub Print_Visible_Worksheets() Dim sh As Worksheet Dim arr() As String Dim N As Long Const sStr As String = "Main" '<<=== CHANGE For Each sh In ThisWorkbook.Worksheets With sh If .Visible = xlSheetVisible Then If StrComp(.Name, sStr, vbTextCompare) Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = .Name End If End If End With Next sh With ThisWorkbook .Worksheets(arr).PrintPreview 'PrintOut .Worksheets(1).Select End With End Sub '<<============= --- Regards, Norman "Tom" wrote in message ... Hi all, I use the following code to print all visible worksheets. Can it be modified to NOT print a worksheet which is called "Main"? thanks! Sub Print_Visible_Worksheets() 'xlSheetVisible = -1 Dim sh As Worksheet Dim arr() As String Dim N As Integer N = 0 For Each sh In ThisWorkbook.Worksheets If sh.Visible = -1 Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = sh.Name End If Next With ThisWorkbook .Worksheets(arr).PrintOut .Worksheets(1).Select End With End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Why not just
Sub printsheets() For Each ws In Worksheets If ws.Name < "Main" And ws.Visible Then ws.PrintOut Next ws End Sub Don Guillett SalesAid Software "Tom" wrote in message ... Hi all, I use the following code to print all visible worksheets. Can it be modified to NOT print a worksheet which is called "Main"? thanks! Sub Print_Visible_Worksheets() 'xlSheetVisible = -1 Dim sh As Worksheet Dim arr() As String Dim N As Integer N = 0 For Each sh In ThisWorkbook.Worksheets If sh.Visible = -1 Then N = N + 1 ReDim Preserve arr(1 To N) arr(N) = sh.Name End If Next With ThisWorkbook .Worksheets(arr).PrintOut .Worksheets(1).Select End With End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
modification to this code | Excel Discussion (Misc queries) | |||
Code modification help please | Excel Programming | |||
Modification in the CODE to HIDE rows and columns that start with ZERO (code given) | Excel Programming | |||
modification for the code | Excel Programming | |||
Code Modification | Excel Programming |