Excel: Como imprimir páginas únicas com apenas uma folha

0

Estou tentando criar um template no MS Excel para imprimir páginas semelhantes, mas com um ID exclusivo dentro de cada página impressa (por exemplo, ID: 001, 002 e assim por diante ) mas imprimindo a partir de apenas uma folha.

Estou criando algo como um diário de bordo (ou seja, cada página é a mesma, apenas o UID é diferente)

Existe alguma maneira de fazer isso sem duplicar a mesma planilha e inserir os UIDs manualmente?

Se a pergunta não estiver clara, reformulei a frase. Obrigado antecipadamente!

    
por Alex Cheng 26.03.2012 / 04:18

3 respostas

1

Esta foi a resposta à minha abordagem que usei: - Crie uma macro para alterar os valores da célula automaticamente e ligue para a impressora para imprimir a página. A parte importante do código é o loop e a impressão.

Crie a macro e execute-a:

Sub PageNumber()
Application.Dialogs(xlDialogPrinterSetup).Show
For I = 1 To 50
ActiveSheet.Range("G28").Value = "Page " & I & " of 50"
ActiveSheet.Range("G28").Select
With Selection
    HorizontalAlignment = xlRight
    <insert all your cell formatting here>
End With
ActiveWindow.SelectedSheets.Printout Copies:=1, Collate:=True
Next
End Sub
    
por 18.04.2012 / 06:13
0

Eu tenho uma macro para pegar os dados de uma folha de banco de dados e preencher uma folha de modelo repetidamente com os dados.

Dados no modelo

A macro preenche o modelo e salva cada um como um arquivo separado OU cria uma folha separada, à sua escolha. Essa última parte pode ser ajustada para fazer outras coisas, principalmente para demonstrar uma maneira simples de preencher um formulário a partir de um banco de dados baseado em linhas.

Há um arquivo de amostra lá para testes simples e para você seguir em frente. Aqui está a essência principal dessa macro:

Option Explicit

Sub FillOutTemplate()
'Jerry Beaucaire  4/25/2010
'From Sheet1 data fill out template on sheet2 and save
'each sheet as its own file.
Dim LastRw As Long, Rw As Long, Cnt As Long
Dim dSht As Worksheet, tSht As Worksheet
Dim MakeBooks As Boolean, SavePath As String

Application.ScreenUpdating = False  'speed up macro execution
Application.DisplayAlerts = False   'no alerts, default answers used

Set dSht = Sheets("Data")           'sheet with data on it starting in row2
Set tSht = Sheets("Template")       'sheet to copy and fill out

'Option to create separate workbooks
    MakeBooks = MsgBox("Create separate workbooks?" & vbLf & vbLf & _
        "YES = template will be copied to separate workbooks." & vbLf & _
        "NO = template will be copied to sheets within this same workbook", _
            vbYesNo + vbQuestion) = vbYes

If MakeBooks Then   'select a folder for the new workbooks
    MsgBox "Please select a destination for the new workbooks"
    Do
        With Application.FileDialog(msoFileDialogFolderPicker)
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count > 0 Then    'a folder was chosen
                SavePath = .SelectedItems(1) & "\"
                Exit Do
            Else                                'a folder was not chosen
                If MsgBox("Do you wish to abort?", _
                    vbYesNo + vbQuestion) = vbYes Then Exit Sub
            End If
        End With
    Loop
End If

'Determine last row of data then loop through the rows one at a time
    LastRw = dSht.Range("A" & Rows.Count).End(xlUp).Row

    For Rw = 2 To LastRw
        tSht.Copy After:=Worksheets(Worksheets.Count)   'copy the template
        With ActiveSheet                                'fill out the form
            'edit these rows to fill out your form, add more as needed
            .Name = dSht.Range("A" & Rw)
            .Range("B3").Value = dSht.Range("A" & Rw).Value
            .Range("C4").Value = dSht.Range("B" & Rw).Value
            .Range("D5:D7").Value = dSht.Range("C" & Rw, "E" & Rw).Value
        End With

        If MakeBooks Then       'if making separate workbooks from filled out form
            ActiveSheet.Move
            ActiveWorkbook.SaveAs SavePath & Range("B3").Value, xlNormal
            ActiveWorkbook.Close False
        End If
        Cnt = Cnt + 1
    Next Rw

    dSht.Activate
    If MakeBooks Then
        MsgBox "Workbooks created: " & Cnt
    Else
        MsgBox "Worksheets created: " & Cnt
    End If

Application.ScreenUpdating = True
End Sub
    
por 26.03.2012 / 07:50
0

Eu usei Mala Direta no MS Word. Basta colocar o dia da semana e da data em um arquivo excel separado, em seguida, copiei o meu documento para um arquivo de palavras, e usei uma mala direta para alterar os dias e as datas em cada documento. Muito fácil ..

    
por 27.05.2015 / 01:58