Bonjour à tous,
En vba, il existe une fonction native REPLACE(expression, find, replace, [ start, [ count, [ compare ]]]) Voir ici pour plus d'information
Toutefois, cette fonction ne peut remplacer qu'un seul caractère à la fois. donc dans l'éventualité d'un remplacement de différents caractères par un même caractère, rien de mieux que l'utilisation du RegEx. Le code suivant permet cette action!
Exemple de remplacement en une seule passe des caractères
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 Public Function fRegExReplace(psValue As String, psPattern As String, psBy as string) As String Dim oRegExp As New regexp Dim sPattern As String,sValueCleaned As String If Nz(psValue) = "" Then GoTo Exit_ 'Set oRegExp = CreateObject("vbscript.regexp") With oRegExp .Global = True .MultiLine = True .IgnoreCase = False .Pattern = psPattern sValueCleaned = .Replace(Nz(psValue), psBy) End With fRegExReplace = sValueCleaned Exit_: Set oRegExp = Nothing End Function
- ESPACES
- [
- ]
par VIDE
Code : Sélectionner tout - Visualiser dans une fenêtre à part sTextCleaned = fRegExReplace(sFieldName, "\s|\[|\]","")
Partager