Olá pessoal!
Nossas planilhas, e neste caso refiro-me as inúmeras 'sheets' ou pastas dentro de uma única planilha (workbook). Com o passar do tempo, se não tomarmos cuidado, acabam sendo compostas por diversas interfaces diferentes. Algumas com visões consolidadas e outras detalhadas (drilldown).
Os três exemplos abaixo visam permitir que possa dar diversas opções de impressão aos seus usuários, e obviamente a você mesmo.
1º EXEMPLO
Este código imprime as todas as planilhas selecionadas, veja o código do procedimento inPrintSelectedsSheets mostrado abaixo.
Sub inPrintSelectedSheets (Preview As Boolean)
Dim N As Long
Dim M As Long
Dim Arr() As String
With ActiveWindow.SelectedSheets
ReDim Arr(1 To .Count)
For N = 1 To .Count
Let Arr(N) = .Item(N).Name
Next N
End With
Sheets(Arr).PrintOut Preview:=True
End Sub
2º EXEMPLO
Já este código a seguir imprime apenas as planilhas não selecionadas através do procedimento inPrintUnSelectedSheets:
Sub inPrintUnselectedSheets (Preview As Boolean)
ReDim Arr(1 To ActiveWorkbook.Sheets.Count)
For Each WS In ActiveWorkbook.Sheets
With ActiveWindow.SelectedSheets
If StrComp(WS.Name, .Item(N).Name, vbTextCompare) = 0 Then
ReDim Preserve Arr(1 To K)
ActiveWorkbook.Sheets(Arr).PrintOut Preview:=Preview
3º EXEMPLO
O código a seguir exclue as planilhas informadas na seleção, imprimindo todas as demais com o procedimento inPrintSheetsExclude. Use assim: inPrintSheetsExclude false, "Sheet2", "Sheet4", "Sheet6". Perceba que todas as sheets serão impressas, excetuando-se as sheets: Sheet2, Sheet4, e Sheet6, veja o código:
Sub inPrintSheetsExclude (Preview As Boolean, ParamArray Excludes() As Variant)
ReDim Arr(1 To Sheets.Count)
For N = 1 To Sheets.Count
For M = LBound(Excludes) To UBound(Excludes)
If StrComp(Sheets(N).Name, Excludes(M), vbTextCompare) = 0 Then
Let Arr(K) = Sheets(N).Name
ReDim Preserve Arr(1 To K)
Sheets(Arr).PrintOut Preview:=Preview
Fonte: C Person
Tags: André Luiz Bernardes, Microsoft, MOS, MS, Office, Office 2007, Office 2010, automation, automação, print, various print, simultaneously print, multi print,
André Luiz Bernardes
A&A® - Work smart, not hard.