[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 75
  • Last Modified:

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
0
mvp1985
Asked:
mvp1985
1 Solution
 
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
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
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

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now