VBA Excel - Imprimindo múltiplas planilhas simultaneamente

VBA Excel - Imprimindo múltiplas planilhas simultaneamente



Olá pessoal!

Resolvamos uma questão constante no que diz respeito a impressão de diversas planilhas, geralmente contendo Dashboards, que precisam ser impressos juntos para nos permitir tanto rapidez como praticidade.


Manipulando Impressoras e Impressões: 


Quando imprimimos uma sheet no MS Excel, esta é impressa num trabalho de impressão próprio, mas a impressão de várias sheets criam vários trabalhos de impressão. 

Neste artigo verá descrito um código que pode ser usado para imprimir várias planilhas como um único trabalho de impressão. O primeiro parâmetro para todas as funções é chamado de visualização e indica se as folhas devem ser exibidas na janela de pré-visualização (Preview = True) ou enviadas diretamente para a impressora ativa (Preview = False).

Esta Procedure tem como parâmetros os nomes das planilhas a serem impressas:

    PrintSheets False, "Sheet1", "Sheet3", "Sheet5"
    
Este código imprime as planilhas: Sheet1, Sheet3, e Sheet5, vejoa o código do procedimento PrintSheets mostrado abaixo.


    Sub PrintSheets (Preview As Boolean, ParamArray SheetNames() As Variant


    ' PrintSheets

    ' Todas as sheets que serão impressas são passadas como parametro.

    ' As sheets que não existirem serão ignoradas.



    Dim Arr() As String

    Dim N As Long

    Dim K As Long

    Dim B As Variant

    Dim WS As Object


    If UBound(SheetNames) >= LBound(SheetNames) Then

        ReDim Arr(LBound(SheetNames) To UBound(SheetNames))


        Let K = LBound(SheetNames)


        For N = LBound(SheetNames) To UBound(SheetNames)

            On Error Resume Next

            Err.Clear


            Set WS = Sheets(SheetNames(N))


            If Err.Number = 0 Then

                Let Arr(K) = SheetNames(N)

                Let K = K + 1

            End If


            On Error GoTo 0

        Next N


        If K > 0 Then

            ReDim Preserve Arr(LBound(Arr) To K - 1)

            Sheets(Arr).PrintOut Preview:=Preview

        End If


    End If

End Sub

👉 Não se esqueça de seguir André Bernardes no Linkedin. Clique aqui e me contate via What's App. 

Comente e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com


 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

Nenhum comentário:

Postar um comentário

diHITT - Notícias