Existe uma maneira de imprimir várias planilhas em um documento, com números de página corretos?

1

Eu tenho uma pasta de trabalho que contém várias guias que são usadas para listar dados que são impressos para um relatório. Quando chega a hora de imprimir o relatório, um usuário abre uma central telefônica e seleciona as seções desejadas (planilhas) da pasta de trabalho que gostaria de imprimir.

Eu não fiz esta planilha e, sinceramente, tenho pouca experiência em trabalhar com o Excel nesse nível.

Atualmente, quando as folhas de trabalho são impressas, cada uma delas é impressa como documento próprio em um PDF. Depois que todas as planilhas são impressas em PDF, o usuário abre o Adobe Acrobat e mescla os PDFs juntos.

Meus usuários gostariam que o Excel imprimisse apenas as planilhas selecionadas para um único PDF e para incluir números de página sequenciais em todo o documento. Isso pode ser feito (via Macros ou VBA?)

    
por RLH 29.08.2013 / 21:14

3 respostas

1

Se você quiser usar uma caixa de listagem, recomendo configurar um formulário de usuário com uma caixa de listagem e um botão de comando. A caixa de listagem precisará ter multisseleção ativada, o que você pode fazer a partir do código.

Mais uma vez, isso imprimirá não apenas as planilhas selecionadas, mas também a seleção de cada planilha. Você precisará verificar se as células corretas estão destacadas em cada planilha antes de executar o código da sua caixa de listagem.

Não seria necessário incluir números de página em seu código, porque, depois de configurado, veja a resposta acima ) vai ficar assim até mudar de novo. Se você quiser que permaneça assim para sempre, salve a pasta de trabalho depois de configurar o rodapé personalizado.

Aqui está um código de exemplo para você começar. Ele assume que o formulário do usuário é chamado UserForm, a caixa de listagem é ListBox1 e o botão de comando é cmd_print. Todas as linhas que começam com 'são comentários para o código depois dele.

 Private Sub UserForm_Initialize()
  'make sure listbox1 allows multiple selections
  ListBox1.MultiSelect = fmMultiSelectExtended

  'display all worksheets in listbox1
  Dim sheet_choose As Long
  For sheet_choose = 1 To Worksheets.Count
    ListBox1.AddItem (Worksheets.Item(sheet_choose).Name)
  Next
End Sub

Private Sub cmd_print_Click()
  'use no_selected_worksheets to tell
  'if anything has been selected in
  'listbox1. default = true b/c assumes
  'nothing has been selected until
  'finding out otherwise.
  Dim no_selected_worksheets As Boolean
  no_selected_worksheets = True

  'go through listbox, check what has been
  'selected.
  Dim list_choose As Long
  For list_choose = 0 To ListBox1.ListCount - 1
    'if worksheet has been selected in
    'listbox, make worksheet selected
    'in workbook.
    If ListBox1.Selected(list_choose) Then
      If no_selected_worksheets Then
        'if this is the first worksheet
        'to be selected, make sure no
        'other worksheets are also
        'selected.
        Worksheets(list_choose + 1).Select
        'change to false to indicate a
        'worksheet has been selected.
        no_selected_worksheets = False
      Else
        'if this is *not* the first worksheet
        'to be selected in the listbox, then
        'make sure this worksheet is selected
        'in addition to the other worksheets.
        Worksheets(list_choose + 1).Select (False)
      End If
    End If
  Next

  'if selection(s) made, printout. this will print only
  'the selections.
  If Not no_selected_worksheets Then
    'as alternative to ActiveWorkbook.PrintOut, use
    'ActiveWorkbook.PrintPreview
    ActiveWorkbook.PrintOut
  Else
    'display a message if nothing was selected
    MsgBox "No sheets were selected for printing as .pdf", vbInformation, "PDF printer"
  End If
End Sub

Mais ajuda em qualquer uma dessas funções pode ser acessada através da ajuda do VBA.

    
por 30.08.2013 / 16:15
2

Para imprimir somente planilhas selecionadas, você precisa selecionar duas vezes.
Primeiro, selecione os intervalos que você deseja imprimir em cada planilha. Se apenas uma célula for selecionada, somente uma vez a célula imprimirá para essa planilha. Em segundo lugar, selecione as planilhas que deseja imprimir clicando e clicando com a tecla Ctrl nas guias das planilhas.

Para imprimir números de página no documento, escolha "Layout da página" na faixa de opções e clique na seta na parte inferior direita da seção "Configuração da página". Clique na aba "Cabeçalho / Rodapé", escolha "Rodapé Personalizado ...", e você pode colocar o número da página onde desejar, escolhendo o ícone do número da página para a seção apropriada.

Eu recomendaria fazer uma pré-visualização da impressão primeiro, para ver se corresponde ao que você deseja, antes de imprimir em .pdf.

    
por 29.08.2013 / 21:43
0

Você pode adicionar números de páginas originais novamente (e combinar vários trabalhos de impressão) em esta solução comercial .

    
por 03.12.2015 / 10:22