View Single Post
 
Old 10-19-2015, 10:45 PM
FredSmith99 FredSmith99 is offline Windows 7 32bit Office 2007
Novice
 
Join Date: Oct 2015
Posts: 3
FredSmith99 is on a distinguished road
Default

Hi Paul,
thank you for your code. It looks very good and has similarities to the way I have finally chosen (we worked in parallel): My data are identified by a prefix "D#", so
- in a first loop I determine the maximum ID that is available in the document,
- then those data that do not yet have an ID are assigned with one in Loop 2
Thanks for the feedback,
Fred
Here my approach:
Code:
 
Sub AddDataID()
NumberOfData = 0
DataMaxID = 0
AllDataHaveID = True
With Selection 'Look for D# in the document and determine the maximum ID that was already assigned
    .HomeKey Unit:=wdStory
    With .Find
        .Text = "D#??????"
        .Forward = True
        .MatchWildcards = True
    End With
    Do While .Find.Execute 'Loop 1: Determine the maximum ID
        NumberOfData = NumberOfData + 1
        FirstSpace = InStr(1, Selection, " ") 'Per definition there is a " " after the ID
        DataNumberFound = Val(Mid(Selection, 3, FirstSpace - 3))
        If DataNumberFound = 0 Then AllDataHaveID = False 'Not all requirements have an ID yet
        If DataNumberFound > DataMaxID Then DataMaxID = DataNumberFound
    Loop
End With
'Then loop 2 to assign those data that do not have an ID yet an ID starting from DataMaxID
End Sub
Reply With Quote