Bonjour,
J'ai un document dans Word qui contient plusieurs motifs numérotés de 10 en 10 comme décrit ci-dessous.
Cependant, il arrive assez fréquemment que le même pattern soit utilisé plusieurs fois.
Code :
- MyPattern-00010
- MyPattern-00020
- MyPattern-00030
- MyPattern-00030 <= Doublon
- ....
- MyPattern-01030
|
J'ai crée une macro en me servant du code http://stackoverflow.com/questions [...] -word-2010 que j'ai modifié afin de chercher le pattern "MyPattern-[0-9]{5}" que je souhaite renuméroter correctement.
J'arrive à modifier tout les patterns mais je n'arrive pas à les renuméroter correctement de 10 en 10. Quelqu'un sait-il comment mémoriser le dernier pattern 'XXXXX' sur 5 digits et l'incrémenter de 10 en 10.
Merci pour votre aide.
PS: Mon document word contient 100 à 200 motifs numérotés (au cas où la réponse serait de le faire à la main )
Code :
- '================================================================================
- ' This macro allows renumbering pattern
- '================================================================================
- Sub Renumber()
- ' Variables' Declaration
- Dim MyPattern As String
- Dim MyStartNbr As String
- Dim MyStartNbr As Integer
-
- 'Init.
- MyStartNbr = 0
-
- ' Ask the user for the pattern to look for
- MyPattern = InputBox(Prompt:="Pattern to look for", Title:="Renumbering of pattern" )
- MyStartNbr = InputBox(Prompt:="Start number to use", Title:="Renumbering of pattern" )
- ' Convert String to Int
- MyStartNbr = CInt(MyStartNbr)
-
- ' Settings
- With Selection.Find
- .Replacement.Text = MyPattern & Format(MyStartNbr, "00000" )
- .Forward = True
- .Wrap = wdFindStop
- .MatchWholeWord = False
- .MatchWildcards = True
- .MatchSoundsLike = False
- .MatchAllWordForms = False
- End With
-
- With Selection.Find
- .Text = MyPattern & "[0-9]{5}"
- .Execute Replace:=wdReplaceOne, Forward:=True, Wrap:=wdFindContinue
- End With
-
- ' Compute the number to use
- MyStartNbr = MyStartNbr + 10
-
- End Sub
|
Message édité par sined40 le 10-08-2016 à 09:15:25