Bonjour à tous,
Comme le dit Whismeril, une combinaison "regex" et "replace" permet d'obtenir le résultat souhaité.
Ex:
Function MyRegEx(argString)
Dim RegEx, matches
Set RegEx = New RegExp
With RegEx
.IgnoreCase = False
.Global = True
.Pattern = "[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝ]"
Set matches = .Execute(argString)
End With
If matches.Count >= 0 Then
argString = Replace(UCase(argString), Space(1), Space(0))
Else
argString = Replace(argString, Space(1), Space(0))
End If
MyRegEx = argString
End Function
WScript.Echo "test1" & vbTab & MyRegEx(" aOÜt")
WScript.Echo "test2" & vbTab & MyRegEx("août ")
WScript.Echo "test3" & vbTab & MyRegEx("AO ÛT")
WScript.Echo "test4" & vbTab & MyRegEx("AOût")
WScript.Echo "test5" & vbTab & Len(MyRegEx(" aOÜt"))
WScript.Echo "test6" & vbTab & Len(MyRegEx("août "))
WScript.Echo "test7" & vbTab & Len(MyRegEx("AO ÛT"))
WScript.Echo "test8" & vbTab & Len(MyRegEx("AOût"))
jean-marc