Bonjour à tous,
Je me casse actuellement la tête (et les dents, et plus encore) sur une expression régulière dans une macro VBA sous Word qui doit filtrer des informations sous Excel.
Pour cela j'ai choisi d'utiliser une expression régulière dans ma macro, qui marche parfaitement, à une exception près : elle ne s'arrête pas comme voulue au retour chariot et embarque donc le mot suivant avec elle (à tort).
Voici ma macro actuelle :
Et voici un exemple de résultat qui se produit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim RegEx As RegExp Set RegEx = New RegExp RegEx.MultiLine = False RegEx.IgnoreCase = True RegEx.Global = True RegEx.Pattern = "[+][.]*[^ ]{1,}" Sheets("Donnees").Cells(l, c).Value = RegEx.Replace(Sheets("Donnees").Cells(l, c).Value, "")
Comme vous l'aurez compris, ma macro doit supprimer tout les mots collés au symbole "+" , "+" inclus. Elle ne prend pas les mots séparés du "+" par un espace grâce à "[^ ]". Malheureusement elle considère le retour chariot comme un caractère banal et inclus donc aussi les mots directement après le retour à la ligne.
J'ai essayé avec l'option "\r" et "\n", mais sans résultat concluant, alors que cette option marche dans d'autres langages.
Merci d'avance pour vos solutions, cela me sortirait une écharde du pied (voir un bambou entier).
PS : pour les expressions régulières, je m'aide de cette application si cela peut vous aider : http://regexpal.com/
Partager