Witam, poszukuję programu lub jakiegoś sposobu, który umożliwiłby automatyczne dodanie gdzieś w dokumencie word (np. w nagłówku, stopce lub na pojedynczej stronie) informacji o liczbie wydrukowanych egzemplarzy i ich autonumerowaniu. Żeby uzmysłowić dokładniej czego szukam:
dokument word “Dok1.doc/docx” a w jego np. stopce “Egzemplarz nr 1”, później drukuje np. poprawioną wersję tego samego dokumentu, np. poprawione literówki, no i w tym samym miejscu pojawia mi się “Egzemplarz nr 2”
Czy istnieje coś takiego wbudowanego w word 2007 i nowsze? Jeśli nie to czy jest jakiś program który to umożliwi?
dokument word "Dok1.doc/docx" a w jego np. stopce "Egzemplarz nr 1", później drukuje np. poprawioną wersję tego samego dokumentu, np. poprawione literówki, no i w tym samym miejscu pojawia mi się "Egzemplarz nr 2"
No masz problem ciężko dopisać długopisem “2” myślałem, że np. drukujesz 100 egzemplarzy i chcesz żeby każdy miał oddzielny nr.
Będę to wykorzystywał np. po zmianie w dokumencie i drukował jako wersja 2, 3, 5 czy 10, ale też jako numer wydruku tej samej wersji, bez żadnych zmian.
Mam problem z użytkowaniem tego sposobu który podał @drobok.
Mianowicie, przeczytałem dokładnie cały tekst kilka razy i niestety różnych opcji próbowałem, ciągle nie działa…
Z tekstu rozumiem, że w miejscu w którym chce aby numer drukowanej kopii się pojawił mam wkleić w nawiasy {} coś takiego:
DOCVARIABLE "CopyNum"
Dokładniej mówiąc, wciskam CTRL+F9, pojawiają się nawiasy {} i wklejam to co wyżej. Z tym, że wtedy w tym miejscu jest puste miejsce, nic się nie pojawia. Postanowiłem więc spróbować wkleić ten dłuższy kod:
Public Sub PrintNumberedCopies1()
Dim varItem As Variable
Dim bExists As Boolean
Dim lCopiesToPrint As Long
Dim lCounter As Long
Dim lCopyNumFrom As Long
' ensure our doc variable exists
bExists = False
For Each varItem In ActiveDocument.Variables
If varItem.Name = "CopyNum" Then
bExists = True
Exit For
End If
Next varItem
' initialize document variable if doesn't exist
If Not bExists Then
ActiveDocument.Variables.Add _
Name:="CopyNum", Value:=0
End If
' ask how many to print
lCopiesToPrint = InputBox( _
Prompt:="How many copies?", _
Title:="Print And Number Copies", _
Default:="1")
' ask where to start numbering
lCopyNumFrom = CLng(InputBox( _
Prompt:="Number at which to start numbering copies?", _
Title:="Print And Number Copies", _
Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))
' loop through the print-write-print cycle
For lCounter = 0 To lCopiesToPrint - 1
' update the document variable
ActiveDocument.Variables("CopyNum") = _
lCopyNumFrom + lCounter
' print this numbered copy
ActiveDocument.PrintOut Copies:=1
Next lCounter
End Sub
Dodałem go również w nawiasy {} w/w metodą. Wtedy w tym miejscu pojawia się komunikat: “Błąd! Nie zdefiniowano zakładki.”
Pomyślałem więc, że spróbuję to zrobić tak iż wrzucę do jednych nawiasów {} ten długi kod, a w miejscu gdzie ma się pojawić numer kopii wrzucę tylko w nawiasy ten kod: DOCVARIABLE “CopyNum”.
Niestety ale również nie działa. Prosiłbym o jakąś pomoc jak to ogarnąć. O w/w błędzie szukałem, dodawałem spis treści, aktualizowałem go i nic nie pomogło. Generalnie próbowałem naprawdę wielu sposobów. Mam word 2010.
alt+f11 ppm na word object insert module wpisujesz
Public Sub PrintNumberedCopies1()
Dim varItem As Variable
Dim bExists As Boolean
Dim lCopiesToPrint As Long
Dim lCounter As Long
Dim lCopyNumFrom As Long
' ensure our doc variable exists
bExists = False
For Each varItem In ActiveDocument.Variables
If varItem.Name = "CopyNum" Then
bExists = True
Exit For
End If
Next varItem
' initialize document variable if doesn't exist
If Not bExists Then
ActiveDocument.Variables.Add _
Name:="CopyNum", Value:=0
End If
' ask how many to print
lCopiesToPrint = InputBox( _
Prompt:="How many copies?", _
Title:="Print And Number Copies", _
Default:="1")
' ask where to start numbering
lCopyNumFrom = CLng(InputBox( _
Prompt:="Number at which to start numbering copies?", _
Title:="Print And Number Copies", _
Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))
' loop through the print-write-print cycle
For lCounter = 0 To lCopiesToPrint - 1
' update the document variable
ActiveDocument.Variables("CopyNum") = _
lCopyNumFrom + lCounter
' print this numbered copy
ActiveDocument.PrintOut Copies:=1
Next lCounter
End Sub
alt+f8 enter ilość kopii enter od którego zaczynasz enter
Jak dorzucisz nawias do wyrażenia przez z będzie ok. Tu masz całość z w/w poprawkami
Public Sub PrintNumberedCopies1()
Dim varItem As Variable
Dim bExists As Boolean
Dim lCopiesToPrint As Long
Dim lCounter As Long
Dim lCopyNumFrom As Long
' ensure our doc variable exists
bExists = False
For Each varItem In ActiveDocument.Variables
If varItem.Name = "CopyNum" Then
bExists = True
Exit For
End If
Next varItem
' initialize document variable if doesn't exist
If Not bExists Then
ActiveDocument.Variables.Add _
Name:="CopyNum", Value:=0
End If
' ask how many to print
lCopiesToPrint = InputBox( _
Prompt:="How many copies?", _
Title:="Print And Number Copies", _
Default:="1")
' ask where to start numbering
lCopyNumFrom = CLng(InputBox( _
Prompt:="Number at which to start numbering copies?", _
Title:="Print And Number Copies", _
Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))
' loop through the print-write-print cycle
For lCounter = 0 To lCopiesToPrint - 1
' update the document variable
ActiveDocument.Variables("CopyNum") = "Strona: " & (lCopyNumFrom + lCounter) & " z " & lCopiesToPrint
' print this numbered copy
ActiveDocument.PrintOut Copies:=1
Next lCounter
End Sub