View Single Post
  #28   Report Post  
Posted to microsoft.public.word.docmanagement
snulton snulton is offline
external usenet poster
 
Posts: 25
Default How do I set up automatically suceeding numbers in Word?

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.