Comment puis-je utiliser les expressions régulières dans Excel, à la fois dans les formules de cellules et dans le code VBA ?
Excel ne prend pas en charge les regex nativement dans les formules. Vous avez deux options :
Option 1 : UDF VBA
Créez une fonction personnalisée :
Function RegexMatch(text As String, pattern As String) As String
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = pattern
regex.Global = True
If regex.Test(text) Then
RegexMatch = regex.Execute(text)(0).Value
End If
End Function
Option 2 : Dans une boucle VBA
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\d+"
For Each cell In Range("A1:A100")
If regex.Test(cell.Value) Then
' traitement
End If
Next