View Single Post
  #29   Report Post  
Posted to microsoft.public.word.docmanagement
Jay Freedman Jay Freedman is offline
external usenet poster
 
Posts: 9,854
Default How do I set up automatically suceeding numbers in Word?

Did you include the code to unprotect the document and the code to protect
the document? This was in my post of 10/182007:

- ... insert new code before and after the InsertBefore line
like this:

If ActiveDocument.ProtectionType wdNoProtection Then
ActiveDocument.Unprotect
End If

ActiveDocument.Bookmarks("Order").Range.InsertBefo re Format(Order,
"0000#")

ActiveDocument.Protect

ActiveDocument.SaveAs FileName:="path" & Format(Order, "0000#")


That will turn off the protection just long enough to insert the sequence
number, and then turn the protection on again.

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.

snulton wrote:
Thank you Jay;

I got it to work, however if the lock icon is clicked to protect the
form when that template is accessed an Error messege:
"Run-time error `4605`
This method or property is not available because the object refers to
a protected area of the document. appears. When clicking on "De-bug"
The VBA opens the AutoNew window and highlites the second to last
line before "End Sub"

But without the document "protected" the numbering works.

Thanks again

"Jay Freedman" wrote:

Hi Scott,

I'm not upset; this is a complicated setup. But it does seem that
you missed some fundamental principles, and I'm glad of the chance
to start at the bottom and clear things up.

Your paragraph "First I open a template ..." is not correct. Please
wipe that blackboard clean, and we'll start from the beginning.

I'll assume you have a template named SerRepCon.dot that contains
the text of a contract. Within that text are some form fields. For
each customer, you want to make a document based on the template, in
which the form fields will be filled in differently. Some place in
the document you want to put a sequence number that will be
different for each document, and that number will also become part
of the document's file name. Right so far?

I'll also assume that at this point the SerRepCon.dot template
doesn't contain any macros, and that the template file is stored in
your Templates folder (something like C:\Documents and
Settings\snulton\Application Data\Microsoft\Templates).

Start the Word program. Click File Open (_not_ File New at this
time). Set the "Files of type" dropdown to "Document Templates
(*.dot)". Use the "Look in" dropdown to navigate to the Templates
folder, select SerRepCon.dot, and click OK. You're now able to edit
the SerRepCon.dot template itself, not any document based on it.

Put the cursor in the location where you want the sequence number to
appear, and insert a bookmark named "Order". That same bookmark will
automatically appear in each document you base on this template.

Open the VBA editor. The Projects pane should include icons for
Normal (because Normal.dot is always loaded), FineReader6SprintTools
(which is an add-in from the FineReader program), Live Meeting
Toolbar Customizations (another add-in), and SerRepCon. If you
followed the directions exactly, there shouldn't be any others --
but if there are, ignore them.

Select and expand the icon for "TemplateProject (SerRepCon)". It
should contain a folder named "Microsoft Word Objects", in which
there is a "ThisDocument" icon. Ignore those. Click the Insert
Module command on the menu (in the VBA editor, not in Word's
window). That will create a Modules folder under "TemplateProject
(SerRepCon)", containing a "Module1" icon. To verify that you're in
the right place, the code window should be empty and the title bar
should say "Microsoft Visual Basic - SerRepCon - [Module1 (Code)]".

Click in the code window and paste in the code of the AutoNew macro
from our recent posts. Make sure it includes the lines to unprotect
and reprotect the form. The two lines that mention
System.PrivateProfileString should contain "C:\SerRepCon
Sequence.txt" as the name of the file to contain the current
sequence number.

Close the VBA editor. Turn on form protection (click the lock icon
on the Forms toolbar), save the template, and close it.

Open the File New dialog (_not_ File Open -- now you're going to
create a document based on the template). Select the SerRepCon
template and click OK. You should see a document named
"path00001.doc" that is a protected form with the sequence number
00001 at the place marked by the Order bookmark.

Each time you go to File New and select the SerRepCon template as
the basis for a new document, you should get another document and
the sequence number should be greater by 1 than the one before.

Now repeat all the previous steps for the template of another kind
of form; the only difference should be that the lines that mention
System.PrivateProfileString should contain the name of a different
text file -- one related to that particular template.

By the way, I don't think you really want the word "path" as part of
the document's filename. The reason it's there now is that the
original article on word.mvps.org shows it there -- but it was meant
to represent the folder location (that is, the path from C:\ to the
folder where you want the document to be stored), not the literal
word "path". If you just want to store all the documents in the My
Documents folder, you could change the Save statement to something
like

ActiveDocument.SaveAs FileName:="SerRepCon" & Format(Order, "0000#")

so the actual name of a document based on this template would be
something like SerRepCon00001.doc. Because the filename doesn't
contain any information about the folder, Word automatically uses
whatever folder you have set as the Documents location in the Tools
Options File Locations dialog -- and by default that's the My

Documents folder.

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.

snulton wrote:
I hope that I didn't upset you with my insessent questions, but I
am going to repost this:

I am probably beginning to sound really stupid. So let me see if I
have it from the beginning.

First I open a template (.dot) which automatically creates a
document (.doc) that has a name "Document* (* = the number of the
document opened and saved) then in that document I go to File New
which opens a task pane that I then click on the Link for "On my
Computer", I then receive a new Template (.dot) named
"path0*****.dot, I then set my bookmark where I want the sequential
numbers and then Go to Tools Macro Macros and am given a choice
in the window that opens a blank space for Macro name, a bigger
area that has AutoExec.MAIN, AutoExit.MAIN, and RunFineReader, with
active buttons "Create", "Organizer", and "Close".

Logic tells me that I would then "Create" AutoNew. This then opens
Microsoft Visual Basic which has a panel that has a choice of
"FineReader6SprintTools", "Normal", "Project (Document 1)" (with no
modules), "TemplateProject (Live Meeting Toolbar Customizations)"
and finally "TemplateProject (SerRepCon)" [the name of the original
template], both the "Project (Document 1)" and the "TemplateProject
(SerRepCon)" have "ThisDocument" when opening "Microsoft Word
Objects". Which one do I use?

The code window that opens caries the header of whichever main
catagory is highlighted. This is the window that I put the AutoNew
language.

After this is done I would then click on the Save icon on the
toolbar in Microsoft Visual Basic and shut window. then I would go
to File SaveAs and name the document the same as the name used in
the Macro before "sequence".

Is this correct? Inf not Please correct within the messege.


"Jay Freedman" wrote:

snulton wrote:
I have a template that has a space for a number. I want each
successive document opened using that template to have a new
number that is the next number in sucession, i.e. - after opening
20071001, the next time that I access that template should open
2001002.

See http://www.word.mvps.org/FAQs/MacrosVBA/NumberDocs.htm.

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.