How to format autonum numbers to add several 0 before depending if they are one, two or three diggits.

I am looking for a way to format auto numbers, so that they are always the same # of digits. Here is why: the first part of the number is supposed to be the date in a certain format, which works great, and the second part should be an auto-number which also works ok, but not how I need it. So how can I make this number: 201411261 look like this: 20141126001 as if it would always be a three digit number, (there is no case that the autonumber would ever be more than 3 digits)?
Thanks for your help
mvp1985Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

EirmanChief Operations ManagerCommented:
An imperfect possible workaround
.... start the auto numbering from 1001
0
GrahamSkanRetiredCommented:
When the document is complete, you can run a VBA macro to replace the Autonum fields with formatted numbers. This code has been tested in Word 2007, Windows 7.
Sub FormatAutoNum()
    Dim fld As Field
    Dim n As Integer
    Dim rng As Range
    Dim f As Integer
    
    For f = ActiveDocument.Fields.Count To 1 Step -1
        Set fld = ActiveDocument.Fields(f)
        If fld.Type = wdFieldAutoNum Then
            Set rng = fld.Code
            fld.Unlink
            rng.Expand wdWord
            n = Val(rng.Text)
            rng.Text = Format(n, "000")
        End If
    Next f

End Sub

Open in new window

0
mvp1985Author Commented:
How can I start autonumbering at 1001 then?
0
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

GrahamSkanRetiredCommented:
If your version of Word supports it, you could use ListNum fields with the \s switch in the first one.
{LISTNUM \s 1000}
0
mvp1985Author Commented:
I just tried ListNum, but it does not add an additional number like AutoNum.
0
GrahamSkanRetiredCommented:
It isn't clear exactly what the difference is. The number seems to increment as expected.Image of field results
0
GrahamSkanRetiredCommented:
I messed that up. Try again:

Image of codes:Field codes
Image of results:ListNumResults.PNG
0
Eric FletcherCommented:
As in another of your questions (here), I suggest using field code switches and the SEQ field code. Consider the field codes and the results in the screen captures below:
Adding a 3-digit sequence to a date-based valueIn the above, I've set a bookmark named “fcDate” (shown within the [ ] bookmark indicators made visible onscreen by File Options > Advanced > Show document content, Show bookmarks).

On the 2nd line, I've set up a sequence named “Suffix” and set its initial value to 0. The \h switch hides the result (as can be seen in the corresponding result screen capture).

The other lines use the REFerence field code to pull the value of the named bookmark and format it as a date without any separators, but then also adds a SEQ field to insert the sequence’s incrementing value formatted with leading zeros.

Other field codes can use a similar approach, depending on how you can reference your source date values. MailMerge is perhaps the best option if the values are (or can be) in a list. Select all and use Shift-Ctrl-F9 to convert the calculated results to text.

(As noted in the other question, my screen captures above show the result of turning on field code visibility with File Options > Advanced > Show document content, Field shading=Always.)
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Word

From novice to tech pro — start learning today.