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:
Mais je bloque, je n'arrive pas à comprendre le fonctionnement avec le $1
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
Merci de m'aider.
Partager