IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[Regex] Prise en compte du retour chariot dans une expression régulière [WD-2007]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 18
    Points
    18
    Par défaut [Regex] Prise en compte du retour chariot dans une expression régulière
    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 :
    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, "")
    Et voici un exemple de résultat qui se produit :
    Nom : Regex.JPG
Affichages : 981
Taille : 17,4 Ko

    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/

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    J'ai réussi à trouver en essayant de mettre les \n et \r partout dans la regex en alternant l'un, l'autre et les 2.
    Voici la regex fonctionnelle pour ceux que ça pourrait aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        Dim RegEx As RegExp
                        Set RegEx = New RegExp
                        RegEx.MultiLine = False
                        RegEx.IgnoreCase = True
                        RegEx.Global = True
                        RegEx.Pattern = "[+][.]*[^ \n]{1,}"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Insérer un retour chariot dans une regex
    Par Death83 dans le forum Langage
    Réponses: 5
    Dernier message: 30/08/2007, 15h40
  2. Réponses: 2
    Dernier message: 23/08/2006, 17h20
  3. Réponses: 1
    Dernier message: 11/01/2006, 11h58
  4. [Tableaux] Retour Chariot dans une boucle
    Par tchoukapi dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 14h45
  5. [Javascript]Comment faire un retour chariot dans une chaîne
    Par aragorns dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/09/2005, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo