Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1079 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Word Regexp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Word Regexp

n°2286308
sined40
Posté le 09-08-2016 à 19:10:44  profilanswer
 

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 :
  1. MyPattern-00010
  2. MyPattern-00020
  3. MyPattern-00030
  4. MyPattern-00030 <= Doublon
  5. ....
  6. 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 :
  1. '================================================================================
  2. ' This macro allows renumbering pattern
  3. '================================================================================
  4. Sub Renumber()
  5.     ' Variables' Declaration
  6.     Dim MyPattern As String
  7.     Dim MyStartNbr   As String
  8.     Dim MyStartNbr    As Integer
  9.    
  10.     'Init.
  11.     MyStartNbr = 0
  12.    
  13.     ' Ask the user for the pattern to look for
  14.     MyPattern = InputBox(Prompt:="Pattern to look for", Title:="Renumbering of pattern" )
  15.     MyStartNbr = InputBox(Prompt:="Start number to use", Title:="Renumbering of pattern" )
  16.     ' Convert String to Int
  17.     MyStartNbr = CInt(MyStartNbr)
  18.    
  19.     ' Settings
  20.     With Selection.Find
  21.         .Replacement.Text = MyPattern & Format(MyStartNbr, "00000" )
  22.         .Forward = True
  23.         .Wrap = wdFindStop
  24.         .MatchWholeWord = False
  25.         .MatchWildcards = True
  26.         .MatchSoundsLike = False
  27.         .MatchAllWordForms = False
  28.     End With
  29.    
  30.     With Selection.Find
  31.         .Text = MyPattern & "[0-9]{5}"
  32.         .Execute Replace:=wdReplaceOne, Forward:=True, Wrap:=wdFindContinue
  33.     End With
  34.        
  35.     ' Compute the number to use
  36.     MyStartNbr = MyStartNbr + 10
  37.    
  38. End Sub


Message édité par sined40 le 10-08-2016 à 09:15:25
mood
Publicité
Posté le 09-08-2016 à 19:10:44  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Word Regexp

 

Sujets relatifs
VBA: Macro avec Outlook pour gestion d'eventsVba word en-tête image + texte
[Excel / VBA] Récupérer la passerelle par défautVBA - appliquer ce code à deux graph au lieu de un
VBA Lien entre 2 cellules feuille différente[VBA] Problème avec tableau
Touche "CTRL" du clavier en VBA[VBA] Travail sur fichier excel en arrière plan
Plus de sujets relatifs à : VBA Word Regexp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR