Solved

Renumber Word data

Posted on 2016-08-30
5
71 Views
Last Modified: 2016-09-01
Hi All,

I have a function to insert reference numbers into a word document with a mouse click:

e.g.  
click > [R001]
click > [R002]
etc.

While maintaining this document, it can hapen that the function is used to insert new numbers

click > [R003]

But the result after that could be:
[R001]
[R003]
[R002]

I'm looking for a function, that will search for the [Rxxx] format and renumber this in the the whole document, without changing other stuff.

I don't write VBA (oke a little) so please keep it simple
0
Comment
Question by:theo kouwenhoven
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 18

Expert Comment

by:xtermie
ID: 41777657
Can you please post a sample document?
0
 
LVL 16

Author Comment

by:theo kouwenhoven
ID: 41777801
Hi xtermie,

I was not allowed to attach the .docm file so I renamed it to .doc.
In the example there are some rows, but also the VB source that is used to insert the reference numbers.

It would be nice if it can write some logging to a TXT file during the rename actions.

e.g.
[R001] > [R001]
[R025] > [R002]
[R002] > [R003]
etc
SampleDocument.doc
0
 
LVL 56

Accepted Solution

by:
Bill Prew earned 500 total points
ID: 41778111
Give this VBA subroutine a try, seemed to do the job here.

Sub SequenceNumbers()
    Dim rng As Range
    Dim i As Integer

    ' Initialize new sequence values
    i = 0
    
    ' Search entire document
    Set rng = ActiveDocument.Range
    
    ' Use Word FIND methond to do a simple regular expression search
    With rng.Find
        ' Look for our sequence tags in format [Rnnn]
        .Text = "(\[R[0-9]{3}\])"
        .MatchWildcards = True
        
        ' Loop finding each matching tag
        Do While .Execute()
            ' Increment new sequence number and update this tag
            i = i + 1
            rng.Text = "[R" & Format(i, "000") & "]"
        Loop
    End With

End Sub

Open in new window

~bp
0
 
LVL 16

Author Closing Comment

by:theo kouwenhoven
ID: 41779685
Great !!!!! thanks working fine :-)
0
 
LVL 56

Expert Comment

by:Bill Prew
ID: 41779885
Welcome.

~bp
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes a serious pitfall that can happen when deleting shapes using VBA.
If you need to forecast numbers -- typically for finance -- the Windows and Mac versions of Excel 2016 have a basket of tools to get the job done.
The viewer will learn how to  create a slide that will launch other presentations in Microsoft PowerPoint. In the finished slide, each item launches a new PowerPoint presentation and when each is finished it automatically comes back to this slide: …
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question