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

Macros et VBA Excel Discussion :

Expression rationnelle macro VBA [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut Expression rationnelle macro VBA
    Bonjour,

    Je souhaite remplacer une chaine de caractères par une nouvelle chaine modifié, en utilisant les expressions rationnelles de VBA.

    Voici un exemple de chaine d'origine:
    1, 4, 6-7, 9-10, 13-17, 19, 23, 25

    A la fin je souhaite obtenir:
    1;4;[6-7];[9-10];[13-17];19;23;25

    En gros la virgule + espace est remplacé par un point virgule.
    Lorsqu'il y a un intervalle de chiffre, il doit être entouré par des [].

    J'ai commencé à faire une ébauche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub RegexChaine()
        Dim RegEx As RegExp
        Set RegEx = New RegExp
        With RegEx
            .IgnoreCase = True
            .Global = False
            .Pattern = "(.*)(, )(.*)"
        End With
        chaine$ = "1, 4, 6-7, 9-10, 13-17, 19, 23, 25"
        chaine$ = RegEx.Replace(chaine$, "$1")
        MsgBox (chaine$)
     
    End Sub
    Mais je bloque, je n'arrive pas à comprendre le fonctionnement avec le $1

    Merci de m'aider.

  2. #2
    Membre expérimenté Avatar de Denis la Malice
    Homme Profil pro
    FabManager
    Inscrit en
    Février 2013
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : FabManager
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 133
    Par défaut Expression régulière
    Essaie ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Public Function RegexChaine(Chaine As String)
        Dim RegEx As RegExp
        Dim Chaine1 As String
        Dim Chaine2 As String
     
     
        Set RegEx = New RegExp
     
        With RegEx
            .IgnoreCase = True
            .Global = True
            .Pattern = ", "
            Chaine1 = RegEx.Replace(Chaine, ";")
     
            .Pattern = "([0-9]*\-[0-9]*)"
            Chaine2 = RegEx.Replace(Chaine1, "[$1]")
        End With
     
        RegexChaine = Chaine2
    End Function
     
    Sub EssaiRegExp()
        Dim Chaine As String
     
        Chaine = "1, 4, 6-7, 9-10, 13-17, 19, 23, 25"
     
        MsgBox RegexChaine(Chaine), , Chaine
     
    End Sub
    Je procède en 2 passes : le remplacement des ", " par des ";" puis le remplacement des plages.

    PS : quand tu cites du code, mets les balises de code.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    Merci ça marche parfaitement!

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

Discussions similaires

  1. Supprimer balise <IMG> avec une macro & expression rationnelle
    Par ismael25 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/04/2013, 12h57
  2. Aide sur expression rationnelle sur VBA XL
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/10/2012, 17h59
  3. Réponses: 2
    Dernier message: 19/03/2008, 10h30
  4. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 09h11
  5. [langage] Expressions rationnelles (perl/C)
    Par ma2th dans le forum Langage
    Réponses: 11
    Dernier message: 02/08/2004, 18h07

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