Imprime o Número de Série ou o Número Incrementado no Rodapé do Documento do Word

0

Eu sinto que isso é provavelmente um dup, mas não consigo encontrar boas respostas e "As perguntas que já podem ter sua resposta" só mostram uma resposta para o Excel.

Estou procurando rastrear documentos impressos tendo um número de série também conhecido como um número incremental em cada documento impresso.

O objetivo é que tenhamos um documento que é o mestre e depois registra.

Eu quero que cada log tenha um número incremental / único e, em seguida, as pessoas podem escrever esse número exclusivo no documento mestre para facilitar a referência ao log correspondente.

Eu tenho encontrado algum VBA complicado, mas eu não estou familiarizado com a adição de código VBA ao Word e isso parece complicado, eu imaginei que o word tem uma função embutida para isso que estou perdendo.

Eu quero que o campo seja assim:

Doc #: 1

Da próxima vez que imprimirmos, ele deve aparecer no rodapé

Doc #: 2

etc etc.

Obrigado,

PS: O Office 2013 é atualmente o que usamos.

link

Incorporar macro no documento Word

Imprimir o número de série ou o número de penetração no documento do Word Rodapé

link

    
por FreeSoftwareServers 08.06.2018 / 22:31

1 resposta

0

O VBA da Seem é o caminho a seguir, encontrei apenas uma solução que se encaixa no meu problema e funciona.

Método 1: (Preferencial, pois não usa arquivo de texto separado para armazenar o número de série do documento, mas usa uma propriedade de documento personalizada)

Veja > > link

Minha postagem no blog:

link

Eu recomendaria a leitura através do Create Simple Greeting Macro - Word - Microsoft Office se você for iniciante em Macros.

link

Além disso, você desejará automatizá-lo assim que ele funcionar conforme o esperado por meio deste post > > Executar a macro antes de imprimir - Word - Microsoft Office

link

Aqui está meu produto final que é "portátil" para você explorar:

link

Serial_Numbered_Doc_Template.docm

  • Primeiro, crie uma "Propriedade de documento personalizada" chamada "Contador" e defina o valor inicial como 0 (ou qualquer outro).

link

  • Insira no documento onde você deseja que ele seja impresso (consulte o link para obter instruções)

  • Pressione Alt + F11 para abrir o VBA Editor e criar um novo módulo

    Sub FilePrint () Dim i As Long, j As Long Com ActiveDocument   j = CLng (InputBox ("Quantas cópias imprimir?", "Imprimir Cópias"))   Para i = 1 para j     Com .CustomDocumentProperties ("Contador")       .Valor = .Valor + 1     Fim com     .Fields.Update     .Imprimir   Próximo   .Salve  Fim com End Sub

  • Agora eu modifiquei meu "EventClassModule" para chamar este sub automaticamente ao imprimir:

    Privado Sub App_DocumentBeforePrint (ByVal Doc como documento, Cancelar como booleano) 'MsgBox "antes da impressão" 'Chamada saudação 'Call SerialNumber  Cancelar = verdadeiro  Chame o FilePrint End Sub

Método 2:

É claro que o código postado no site está incorreto, o que pode ser encontrado aqui @ link

O problema é que ele precisa ter este snippet de código:

' Display message, title, and default value.
Dim SerialNumber As String
NumCopies = Val(InputBox(Message, Title, Default))
 SerialNumber = System.PrivateProfileString("W:\settings.txt", _
 "MacroSettings", "SerialNumber")

Anote a linha Dim SerialNumber As String que NÃO está no site. Sem isso, você recebe o erro encontrado nesta pergunta > > link

Para a posteridade, vou copiar o guia aqui:

Observe também que fiz uma outra alteração, a qual mostra que o site mostra dois locais para "settings.txt", mas um é "Settings.Txt" e o outro é "Settings.txt". Eu mudei para "settings.txt" como sou um cara do Linux e sei como caps e espaços etc podem bagunçar você no futuro.

----------------------------------------------- - '

Crie um marcador chamado SerialNumber no documento onde você deseja que o número de série apareça. Pode estar no cabeçalho ou no rodapé se é nesse local que você deseja o número. Em seguida, crie uma macro contendo os seguintes comandos para imprimir o documento.

Ele pedirá o número de cópias que você deseja fazer e numerará seqüencialmente cada cópia. Na primeira vez que essa macro for executada, a primeira cópia será numerada como 1 e quando terminar a execução, armazenará no arquivo aSettings.Txt o número que é mais um que o número da última cópia. Da próxima vez que a macro for executada, ela começará a numerar as cópias daquele número. Se, ao iniciar pela primeira vez, você quiser que os números iniciem em um número diferente de 1, execute a macro, inserindo 1 como o número de cópias e, em seguida, abra o arquivo Settings.Txt e substitua o número do arquivo pelo número desejado. como o primeiro da série. A qualquer momento, se você quiser que a série comece em um número específico, você poderá abrir esse arquivo e substituir o número nele pelo número que você deseja que seja o primeiro da série. / p>

Sub SerialNumber()
'
' SerialNumber Macro
'
'
Dim Message  As String, Title  As String, Default  As String, NumCopies  As Long
 Dim Rng1   As Range

 ' Set prompt.
Message = "Enter the number of copies that you want to print"
 ' Set title.
Title = "Print"
 ' Set default.
Default = "1"

' Display message, title, and default value.
Dim SerialNumber As String
NumCopies = Val(InputBox(Message, Title, Default))
 SerialNumber = System.PrivateProfileString("W:\settings.txt", _
 "MacroSettings", "SerialNumber")

 If SerialNumber = "" Then
     SerialNumber = 1
 End If

 Set Rng1 = ActiveDocument.Bookmarks("SerialNumber").Range
 Counter = 0

 While Counter < NumCopies
     Rng1.Delete
     Rng1.Text = SerialNumber
     ActiveDocument.PrintOut
     SerialNumber = SerialNumber + 1
     Counter = Counter + 1
 Wend

'Save the next number back to the Settings.txt file ready for the next use.
System.PrivateProfileString("W:\settings.txt", "MacroSettings", _
         "SerialNumber") = SerialNumber

'Recreate the bookmark ready for the next use.
With ActiveDocument.Bookmarks
     .Add Name:="SerialNumber", Range:=Rng1
 End With
End Sub

Nota: Você pode / deve provavelmente mudar a localização de "settings.txt" para a sua localização preferida da LAN!

settings.txt

[MacroSettings]
SerialNumber=1
    
por 09.06.2018 / 00:58