Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Renumber Word data

Posted on 2016-08-30
5
Medium Priority
?
75 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 57

Accepted Solution

by:
Bill Prew earned 2000 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 57

Expert Comment

by:Bill Prew
ID: 41779885
Welcome.

~bp
0

Featured Post

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

This article describes how to use a set of graphical playing cards to create a Draw Poker game in Excel or VB6.
Ever wonder what it's like to get hit by ransomware? "Tom" gives you all the dirty details first-hand – and conveys the hard lessons his company learned in the aftermath.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

704 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