Guides Excel

Excel et les Expressions Régulières : Comment les Utiliser Efficacement ?

15 janvier 2026 6 vues

Excel, bien que puissant, ne propose pas de fonctions natives dédiées aux expressions régulières (regex). Cependant, il existe des méthodes astucieuses pour les intégrer et exploiter leur potentiel. Que ce soit pour valider des données, extraire des informations spécifiques ou encore formater du texte, les expressions régulières peuvent grandement simplifier vos tâches. Cet article vous guide à travers les différentes options disponibles pour utiliser les regex dans Excel, tout en abordant leurs applications dans Google Sheets.

Comprendre les Expressions Régulières (Regex) et leur Utilité dans Excel

Les expressions régulières, ou regex, sont des séquences de caractères qui définissent un motif de recherche. Elles permettent de rechercher, de manipuler et d'extraire des données textuelles de manière flexible et puissante. Bien qu'Excel ne dispose pas de fonctions regex natives comme dans certains langages de programmation, il existe des solutions pour contourner cette limitation.

Pourquoi utiliser les Regex dans Excel ?

  • Validation de données : Vérifier si une chaîne de caractères respecte un format spécifique (adresse email, numéro de téléphone, code postal, etc.).
  • Extraction de données : Extraire des informations précises à partir de chaînes de caractères complexes (nom d'un produit, prix, date, etc.).
  • Remplacement de texte : Remplacer des motifs spécifiques dans une plage de cellules (correction d'erreurs, formatage de données, etc.).
  • Nettoyage de données : Supprimer des caractères indésirables ou des espaces superflus.

Méthodes pour Utiliser les Expressions Régulières dans Excel

Comme Excel ne possède pas de fonctions natives pour les regex, il faut recourir à des solutions alternatives.

1. Utilisation de VBA (Visual Basic for Applications)

La méthode la plus courante consiste à utiliser VBA, le langage de programmation intégré à Excel. Vous pouvez créer des fonctions personnalisées qui utilisent l'objet RegExp pour effectuer des opérations regex.

Étape 1 : Ouvrir l'éditeur VBA

Appuyez sur Alt + F11 pour ouvrir l'éditeur VBA.

Étape 2 : Insérer un module

Dans l'éditeur VBA, cliquez sur Insertion > Module.

Étape 3 : Écrire la fonction VBA

Copiez et collez le code VBA suivant dans le module :

Function RegexMatch(ByVal text As String, ByVal pattern As String) As Boolean
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.pattern = pattern
    regEx.IgnoreCase = True ' Ignorer la casse
    RegexMatch = regEx.test(text)
End Function

Function RegexReplace(ByVal text As String, ByVal pattern As String, ByVal replacement As String) As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.pattern = pattern
    regEx.IgnoreCase = True
    regEx.Global = True ' Remplacer toutes les occurrences
    RegexReplace = regEx.Replace(text, replacement)
End Function

Function RegexExtract(ByVal text As String, ByVal pattern As String) As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.pattern = pattern
    regEx.IgnoreCase = True
    Dim matches As Object
    Set matches = regEx.Execute(text)
    If matches.Count > 0 Then
        RegexExtract = matches(0).SubMatches(0)
    Else
        RegexExtract = ""
    End If
End Function

Description du code :

  • RegexMatch(text, pattern) : Vérifie si le texte correspond au motif regex. Retourne True si c'est le cas, False sinon.
  • RegexReplace(text, pattern, replacement) : Remplace toutes les occurrences du motif regex dans le texte par le texte de remplacement.
  • RegexExtract(text, pattern) : Extrait la première correspondance du motif regex dans le texte. Le motif doit contenir des parenthèses pour capturer le groupe à extraire. Retourne une chaîne vide si aucune correspondance n'est trouvée.

Étape 4 : Utiliser les fonctions dans Excel

Vous pouvez maintenant utiliser ces fonctions directement dans vos feuilles de calcul Excel.

Exemples :

  • =RegexMatch(A1, "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$") : Vérifie si la cellule A1 contient une adresse email valide.
  • =RegexReplace(A1, "[0-9]", "") : Supprime tous les chiffres de la cellule A1.
  • =RegexExtract(A1, ".*Prix: (\d+).*") : Extrait le prix d'une chaîne de texte contenant "Prix: 123", en supposant que le prix soit un nombre entier.

2. Utilisation de Compléments Excel

Il existe des compléments Excel qui ajoutent des fonctions regex natives. Ces compléments peuvent simplifier l'utilisation des regex sans nécessiter de programmation VBA.

Exemples de Compléments:

  • Regex Tools: Un complément gratuit qui fournit un ensemble de fonctions regex pour Excel.
  • PowerGREP: Un outil de recherche et de remplacement puissant qui peut être utilisé avec Excel.

Installation et Utilisation des Compléments

  1. Téléchargez et installez le complément de votre choix.
  2. Suivez les instructions d'installation fournies avec le complément.
  3. Une fois installé, les fonctions regex du complément seront disponibles dans Excel.

3. Utilisation de Power Query (Get & Transform Data)

Power Query, intégré à Excel depuis la version 2010, permet d'importer, de transformer et de nettoyer des données provenant de diverses sources. Bien qu'il ne propose pas de fonctions regex directes, il permet d'effectuer certaines opérations de manipulation de texte qui peuvent être combinées pour obtenir des résultats similaires.

Exemple : Extraire des chiffres d'une chaîne de texte

  1. Sélectionnez la colonne contenant les données à transformer.
  2. Allez dans l'onglet Données > Obtenir et transformer des données > À partir d'une plage/d'un tableau.
  3. Dans l'éditeur Power Query, ajoutez une colonne personnalisée avec la formule suivante : Text.Select([Column1], {"0".."9"}) (Remplacez [Column1] par le nom de votre colonne).
  4. Cette formule extrait tous les chiffres de la chaîne de texte.
  5. Fermez et chargez les données transformées dans une nouvelle feuille de calcul.

Expressions Régulières dans Google Sheets

Google Sheets offre des fonctions natives pour les expressions régulières, ce qui simplifie grandement leur utilisation par rapport à Excel. Les fonctions les plus courantes sont :

  • REGEXMATCH(texte, expression_régulière) : Vérifie si le texte correspond à l'expression régulière. Retourne TRUE ou FALSE.
  • REGEXEXTRACT(texte, expression_régulière) : Extrait la première correspondance de l'expression régulière dans le texte.
  • REGEXREPLACE(texte, expression_régulière, remplacement) : Remplace toutes les correspondances de l'expression régulière dans le texte par le texte de remplacement.

Exemples dans Google Sheets

  • =REGEXMATCH(A1, "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$") : Vérifie si la cellule A1 contient une adresse email valide.
  • =REGEXEXTRACT(A1, "Prix: (\d+)") : Extrait le prix d'une chaîne de texte contenant "Prix: 123".
  • =REGEXREPLACE(A1, "[0-9]", "") : Supprime tous les chiffres de la cellule A1.

Bonnes Pratiques et Erreurs à Éviter

Bonnes Pratiques

  • Tester vos expressions régulières : Utilisez des outils en ligne comme regex101.com pour tester vos regex avant de les implémenter dans Excel ou Google Sheets.
  • Commenter votre code VBA : Si vous utilisez VBA, ajoutez des commentaires pour expliquer le fonctionnement de vos fonctions regex.
  • Utiliser des noms de variables explicites : Dans VBA, utilisez des noms de variables clairs et descriptifs pour faciliter la compréhension de votre code.
  • Découper les regex complexes : Divisez les regex complexes en plusieurs parties plus simples pour faciliter leur maintenance et leur compréhension.

Erreurs à Éviter

  • Oublier d'échapper les caractères spéciaux : Les caractères spéciaux (comme ., *, +, ?, [, ], (, ), \, ^, $) doivent être échappés avec une barre oblique inverse (\) pour être interprétés littéralement.
  • Créer des regex trop gourmandes : Les regex trop gourmandes peuvent consommer beaucoup de ressources et ralentir vos feuilles de calcul. Essayez d'être le plus précis possible dans vos motifs.
  • Ignorer la casse : Par défaut, les regex sont sensibles à la casse. Utilisez l'option IgnoreCase = True dans VBA ou les options appropriées dans Google Sheets pour ignorer la casse si nécessaire.
  • Ne pas gérer les erreurs : Dans VBA, ajoutez une gestion des erreurs pour éviter que votre code ne plante en cas de problème.

Conclusion

Bien qu'Excel ne propose pas de fonctions regex natives aussi complètes que Google Sheets, il est tout à fait possible d'utiliser les expressions régulières pour manipuler et extraire des données. Que ce soit en utilisant VBA, des compléments ou Power Query, vous pouvez exploiter la puissance des regex pour automatiser des tâches complexes et améliorer votre productivité. N'oubliez pas de tester vos regex, de commenter votre code et d'éviter les erreurs courantes pour garantir le bon fonctionnement de vos feuilles de calcul. Si vous travaillez fréquemment avec des regex, Google Sheets peut être une alternative intéressante en raison de ses fonctions natives dédiées.

Questions fréquentes

Excel a-t-il une fonction REGEX native ?

Non, Excel ne dispose pas de fonctions d'expressions régulières natives. Cependant, vous pouvez utiliser VBA, des compléments ou Power Query pour intégrer des fonctionnalités regex.

Comment puis-je utiliser les expressions régulières dans Excel avec VBA ?

Vous pouvez créer des fonctions personnalisées en VBA qui utilisent l'objet `RegExp`. Définissez le motif regex avec `regEx.pattern`, puis utilisez des méthodes comme `regEx.test` (pour vérifier si une correspondance existe) ou `regEx.Replace` (pour remplacer du texte).

Quelles sont les alternatives à VBA pour utiliser les regex dans Excel ?

Vous pouvez utiliser des compléments Excel qui ajoutent des fonctions regex natives, ou utiliser Power Query pour effectuer des transformations de texte qui peuvent simuler certaines opérations regex.

Google Sheets prend-il en charge les expressions régulières de manière native ?

Oui, Google Sheets propose des fonctions natives pour les expressions régulières, notamment `REGEXMATCH`, `REGEXEXTRACT` et `REGEXREPLACE`.

Comment tester mes expressions régulières avant de les utiliser dans Excel ou Google Sheets ?

Utilisez des outils en ligne comme regex101.com pour tester et déboguer vos expressions régulières avant de les implémenter dans vos feuilles de calcul.

Mots-clés associés :

vba excel regex regex google sheets excel regular expression vba excel text manipulation excel data extraction

Partager cet article :