Je cherche une fonction Excel que je peux mettre dans une cellule pour effectuer une recherche régulière du contenu d'une autre cellule. Y at-il quelque chose de disponible pour faire cela? Je préférerais ne pas avoir à ajouter VB Script à la feuille de calcul car je peux coder en dur une solution plus rapidement. C'est simplement que la solution la plus rapide serait une fonction. Je ne peux pas en trouver un, cependant. Alors peut-être qu'il n'y a rien.
Quelqu'un sait?
Vous pouvez simplement ajouter une référence à 'Microsoft VBScript Regular Expressions 5.5' dans le VBE pour exposer les fonctions de regex VBScript.dll à Excel. L’écriture d’une simple fonction regex est alors triviale, par ex.
Public Function emailCheck(rawEmail As String) As Boolean
Dim reg As New RegExp
reg.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
emailCheck = False
If reg.Test(rawEmail) Then
emailCheck = True
End If
End Function
Le paquet .xla sur de ce site a très bien fonctionné pour moi.
MoreFunc.xll est un add-in gratuit doté de la fonctionnalité Regex.
Il existe d’autres compléments tiers qui peuvent également utiliser Regex.
Il n'y a pas de véritables fonctions de feuille de travail natives pour le faire, mais si vous avez une recherche spécifique à faire, vous pouvez probablement utiliser d'autres fonctions pour faire le travail.
Voici une fonction qui donne le nombre de correspondances d'expressions régulières dans une cellule particulière:
Public Function regexCount(regex As String, ref As Range) As Integer
Dim reg As New RegExp
reg.Global = True
reg.Pattern = regex
regexCount = reg.Execute(ref.Value).Count
End Function
(Nécessite l'ajout d'une référence à "Microsoft VBScript Regular Expressions 5.5" - allez simplement dans "Outils" -> "Références" dans l'éditeur VBA et cochez la case correspondant à cette référence.)