ANS-1722 · AUTRES
Comment mettre en œuvre des expressions régulières dans Microsoft Excel à l’aide de VBA
Effectuez des recherches avancées de correspondance de chaînes de caractères dans Excel en implémentant des fonctions personnalisées en Visual Basic pour Applications (VBA).
Solution courte
Pour utiliser des expressions régulières dans Excel, créez une fonction personnalisée en Visual Basic pour Applications (VBA). Accédez à l'éditeur VBA (Alt-F11), insérez un module et référencez « Microsoft VBScript Regular Expressions 5.5 ». Activez les macros via l'onglet « Développeur ». Une fois configurée, la fonction personnalisée peut être appelée comme n'importe quelle autre fonction Excel pour effectuer une recherche de motifs performante.
Scénario
Les utilisateurs ont souvent besoin d’effectuer des opérations complexes de correspondance et d’extraction de chaînes de caractères dans Excel, une fonctionnalité qui n’est pas prise en charge en natif par les fonctions standard d’Excel. Cette limitation nécessite de trouver une méthode permettant d’étendre les fonctionnalités d’Excel afin de prendre en charge les expressions régulières, qui sont indispensables pour les tâches avancées de manipulation et de validation des données.
Solution
Pour mettre en œuvre des expressions régulières dans Excel, vous devez créer et configurer une fonction personnalisée en Visual Basic pour Applications (VBA). Cette fonction peut ensuite être appelée directement dans les feuilles de calcul Excel. Suivez ces étapes pour configurer et utiliser les expressions régulières :
Accédez à l'éditeur Visual Basic :
Dans une feuille de calcul Excel, appuyez sur Alt-F11 pour ouvrir l'éditeur Visual Basic.
Insérez un nouveau module :
Dans l’Explorateur de projet VBA, cliquez avec le bouton droit de la souris et sélectionnez « Insérer » > « Module ».
Importez les modules RegEx :
Allez dans « Outils » > « Références » et cochez la case « Microsoft VBScript Regular Expressions 5.5 ». Cliquez sur OK.
Activer les macros :
- Accédez à l’onglet « Développeur » dans Excel. Si l’onglet « Développeur » n’est pas visible, allez dans « Fichier » > « Options » > « Personnaliser le ruban » et sélectionnez le sous-onglet « Développeur » dans le menu principal situé à droite.
- Cliquez sur « Sécurité des macros » dans l’onglet « Développeur » pour ajuster les paramètres selon vos besoins.
Implémentez la fonction personnalisée :
Insérez le script Visual Basic suivant dans le module nouvellement créé. Cette fonction, TestRegExp, recherche toutes les occurrences d’un motif d’expression régulière donné au sein d’une chaîne de caractères. Notez que les guillemets doubles sont obligatoires pour le motif d’expression régulière lors de l’appel de la fonction dans Excel.
vbaFunction TestRegExp(myPattern As String, myString As String)'Create objects.Dim objRegExp As RegExpDim objMatch As MatchDim colMatches As MatchCollectionDim RetStr As String' Create a regular expression object.Set objRegExp New RegExpobjRegExp.Pattern myPatternobjRegExp.IgnoreCase TrueobjRegExp.Global TrueIf (objRegExp.Test(myString) True) ThenSet colMatches objRegExp.Execute(myString) ' Execute search.For Each objMatch In colMatches ' Iterate Matches collection. RetStr RetStr & objMatch.ValueNextElseRetStr "String Matching Failed"End IfTestRegExp RetStrEnd FunctionCette fonction renvoie toutes les occurrences concaténées. Pour ne récupérer que la première correspondance, modifiez l’affectation RetStr dans la boucle « For Each » comme suit : RetStr colMatches(0).Value. Un fichier d’exemple contenant cette fonction peut être téléchargé à l’adresse suivante : https://dl.dropboxusercontent.com/u/18899591/RegExFunctionForExcel.bas
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Autres
