Formules Excel

Regex pour Excel : Comment Extraire, Valider et Transformer vos Données ?

15 janvier 2026 1 vues

Excel, bien que puissant, n'intègre pas nativement les expressions régulières (regex). Cependant, il existe des méthodes pour les utiliser indirectement, ouvrant un monde de possibilités pour la manipulation de données. Cet article vous guide à travers ces méthodes, vous permettant d'extraire des informations spécifiques, de valider des formats de données et de transformer vos feuilles de calcul avec une précision inégalée. Préparez-vous à maîtriser la puissance des regex dans Excel !

Comprendre les Bases des Expressions Régulières (Regex)

Avant de plonger dans l'utilisation des regex dans Excel, il est crucial de comprendre ce qu'elles sont et comment elles fonctionnent. Les expressions régulières sont des séquences de caractères qui définissent un motif de recherche. Elles sont utilisées pour faire correspondre, localiser et manipuler du texte.

Qu'est-ce qu'une Expression Régulière ?

Une expression régulière est un langage de description de motifs. Imaginez que vous recherchez tous les numéros de téléphone dans un document. Au lieu de rechercher chaque numéro un par un, vous pouvez utiliser une regex pour définir le motif d'un numéro de téléphone (par exemple, 0X XX XX XX XX) et trouver toutes les occurrences en une seule opération.

Les Composants Clés des Regex

  • Caractères Littéraux: Les caractères que vous tapez directement (par exemple, 'a', 'b', '1', '2').
  • Métacaractères: Des caractères spéciaux qui ont une signification particulière (par exemple, '.', '*', '+', '?').
  • Classes de Caractères: Définissent des ensembles de caractères (par exemple, [0-9] pour tous les chiffres, [a-z] pour toutes les lettres minuscules).
  • Quantificateurs: Spécifient combien de fois un caractère ou un groupe de caractères doit apparaître (par exemple, * pour zéro ou plusieurs fois, + pour une ou plusieurs fois).
  • Ancres: Spécifient une position dans la chaîne de caractères (par exemple, ^ pour le début de la chaîne, $ pour la fin de la chaîne).

Exemples de Regex Simples

  • [0-9]+ : Correspond à une ou plusieurs chiffres.
  • [a-zA-Z]+ : Correspond à une ou plusieurs lettres (majuscules ou minuscules).
  • [a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} : Correspond à une adresse e-mail (plus complexe, mais montre la puissance des regex).

Pourquoi Utiliser les Regex dans Excel ?

Bien qu'Excel possède des fonctions de recherche et de remplacement, elles sont limitées en termes de complexité. Les regex offrent une flexibilité et une puissance considérablement supérieures pour la manipulation de texte. Voici quelques cas d'utilisation courants :

  • Extraction de Données: Extraire des informations spécifiques à partir de chaînes de texte plus longues (par exemple, extraire les codes postaux d'adresses).
  • Validation de Données: Vérifier si les données sont dans un format correct (par exemple, vérifier si une adresse e-mail est valide).
  • Transformation de Données: Remplacer ou modifier du texte en fonction de motifs complexes (par exemple, convertir des dates dans un format spécifique).
  • Nettoyage de Données: Supprimer des caractères indésirables ou corriger des erreurs de formatage.

Comment Utiliser les Regex dans Excel : Les Méthodes

Comme mentionné précédemment, Excel ne prend pas en charge nativement les regex. Il existe donc plusieurs méthodes pour les utiliser, chacune ayant ses avantages et ses inconvénients.

1. Utiliser les Fonctions Excel Combinées

Bien qu'Excel ne propose pas de fonction regex directe, vous pouvez combiner plusieurs fonctions de texte pour obtenir des résultats similaires dans certains cas. Cette méthode est limitée, mais peut être suffisante pour des besoins simples.

Exemple : Extraire un Nombre d'une Chaîne

Supposons que vous ayez une chaîne de texte comme "Produit ABC - 123" et que vous souhaitiez extraire le nombre "123". Vous pouvez utiliser les fonctions DROITE, CHERCHE et NBCAR pour cela.

Formule : =DROITE(A1;NBCAR(A1)-CHERCHE(" - ";A1;1)-2)

Explication :

  • A1 : La cellule contenant la chaîne de texte.
  • CHERCHE(" - ";A1;1) : Trouve la position du séparateur " - " dans la chaîne.
  • NBCAR(A1) : Calcule le nombre total de caractères dans la chaîne.
  • NBCAR(A1)-CHERCHE(" - ";A1;1)-2 : Calcule le nombre de caractères à extraire à partir de la droite (en soustrayant la position du séparateur et la longueur du séparateur).
  • DROITE(A1;...) : Extrait le nombre de caractères calculé à partir de la droite de la chaîne.

Limitations : Cette méthode fonctionne uniquement si le format de la chaîne est constant. Si le format change, la formule devra être modifiée.

2. Utiliser VBA (Visual Basic for Applications)

VBA est le langage de programmation intégré à Excel. Il vous permet d'écrire des macros et des fonctions personnalisées. Vous pouvez utiliser l'objet RegExp de VBA pour utiliser les regex dans Excel.

Activer la Bibliothèque Microsoft VBScript Regular Expressions

Avant de pouvoir utiliser l'objet RegExp, vous devez activer la bibliothèque correspondante dans l'éditeur VBA.

  1. Ouvrez l'éditeur VBA (Alt + F11).
  2. Dans le menu Outils, sélectionnez Références....
  3. Dans la liste des références disponibles, cochez la case Microsoft VBScript Regular Expressions 5.5 (ou une version ultérieure si disponible).
  4. Cliquez sur OK.

Créer une Fonction VBA pour Utiliser les Regex

Voici un exemple de fonction VBA qui utilise une regex pour extraire un motif spécifique d'une chaîne de texte :

Function RegexExtract(ByVal text As String, ByVal pattern As String) As String
    Dim regEx As New RegExp
    Dim matches As MatchCollection
    Dim match As Match

    regEx.pattern = pattern
    regEx.IgnoreCase = True 'Rendre la recherche insensible à la casse
    regEx.Global = True 'Rechercher toutes les occurrences

    Set matches = regEx.Execute(text)

    If matches.Count > 0 Then
        Set match = matches(0)
        RegexExtract = match.Value
    Else
        RegexExtract = ""
    End If
End Function

Explication :

  • Function RegexExtract(ByVal text As String, ByVal pattern As String) As String : Définit une fonction nommée RegexExtract qui prend deux arguments : le texte à analyser (text) et le motif regex (pattern). Elle renvoie une chaîne de caractères.
  • Dim regEx As New RegExp : Crée un nouvel objet RegExp.
  • regEx.pattern = pattern : Définit le motif regex à utiliser.
  • regEx.IgnoreCase = True : Rend la recherche insensible à la casse.
  • regEx.Global = True : Recherche toutes les occurrences du motif dans le texte.
  • Set matches = regEx.Execute(text) : Exécute la regex sur le texte et stocke les résultats dans une collection d'objets Match.
  • If matches.Count > 0 Then ... Else ... End If : Vérifie si des correspondances ont été trouvées. Si oui, elle renvoie la première correspondance. Sinon, elle renvoie une chaîne vide.

Utiliser la Fonction VBA dans Excel

Une fois la fonction VBA créée, vous pouvez l'utiliser directement dans vos feuilles de calcul comme n'importe quelle autre fonction Excel.

Exemple :

Si vous avez le texte "Mon numéro de téléphone est 06-12-34-56-78" dans la cellule A1 et que vous souhaitez extraire le numéro de téléphone, vous pouvez utiliser la formule suivante :

=RegexExtract(A1;"[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}")

Cette formule utilisera la fonction RegexExtract pour extraire le numéro de téléphone correspondant au motif regex spécifié.

3. Utiliser des Compléments Excel

Il existe plusieurs compléments Excel qui ajoutent des fonctionnalités regex directement à Excel. Ces compléments peuvent être payants ou gratuits, et ils offrent généralement une interface utilisateur plus conviviale que l'utilisation de VBA.

Exemple de Complément : RegEx Functions

Le complément "RegEx Functions" est un complément gratuit qui ajoute plusieurs fonctions regex à Excel, telles que REGEXMATCH, REGEXEXTRACT, et REGEXREPLACE. Pour l'utiliser, vous devez l'installer depuis le Microsoft AppSource.

Une fois installé, vous pouvez utiliser ces fonctions directement dans vos formules Excel.

Exemple :

Si vous avez installé le complément "RegEx Functions", vous pouvez utiliser la fonction REGEXEXTRACT pour extraire un numéro de téléphone comme ceci :

=REGEXEXTRACT(A1;"[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}")

Cette formule est plus simple à utiliser que la fonction VBA, car elle est directement intégrée à Excel.

Exemples Pratiques d'Utilisation des Regex dans Excel

Voici quelques exemples pratiques d'utilisation des regex dans Excel pour résoudre des problèmes courants.

1. Valider une Adresse E-mail

Vous pouvez utiliser une regex pour vérifier si une adresse e-mail est valide. Voici une regex couramment utilisée pour valider les adresses e-mail :

[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

Formule VBA :

Function IsValidEmail(ByVal email As String) As Boolean
    Dim regEx As New RegExp
    regEx.pattern = "[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
    IsValidEmail = regEx.Test(email)
End Function

Vous pouvez ensuite utiliser cette fonction dans votre feuille Excel avec =IsValidEmail(A1) où A1 contient l'adresse email à valider.

2. Extraire un Code Postal d'une Adresse

Si vous avez une colonne contenant des adresses complètes, vous pouvez utiliser une regex pour extraire uniquement le code postal. Supposons que les adresses soient au format "Nom, Rue, Code Postal Ville".

Regex : [0-9]{5} (pour un code postal à 5 chiffres)

Formule VBA :

Utilisez la fonction RegexExtract définie précédemment avec le motif [0-9]{5}.

=RegexExtract(A1;"[0-9]{5}")

3. Remplacer Plusieurs Espaces par un Seul

Parfois, les données importées dans Excel peuvent contenir plusieurs espaces consécutifs. Vous pouvez utiliser une regex pour remplacer ces espaces par un seul.

Regex : + (un ou plusieurs espaces)

Formule VBA (pour remplacer) :

Function RegexReplace(ByVal text As String, ByVal pattern As String, ByVal replacement As String) As String
    Dim regEx As New RegExp
    regEx.pattern = pattern
    regEx.Global = True
    RegexReplace = regEx.Replace(text, replacement)
End Function

Utilisez cette fonction dans votre feuille Excel avec =RegexReplace(A1;" +";" ") où A1 contient le texte et " " est l'espace de remplacement.

Bonnes Pratiques et Erreurs à Éviter

  • Tester vos Regex : Avant d'utiliser une regex dans Excel, testez-la avec des outils en ligne pour vous assurer qu'elle fonctionne comme prévu. Des sites comme regex101.com sont très utiles.
  • Échapper les Caractères Spéciaux : N'oubliez pas d'échapper les caractères spéciaux dans vos regex avec une barre oblique inverse (\). Par exemple, pour rechercher un point, utilisez \.. Le backslash lui même doit être échappé en VBA, donc \\..
  • Utiliser les Quantificateurs avec Précaution : Les quantificateurs comme * et + peuvent être gourmands et correspondre à plus de texte que prévu. Utilisez-les avec parcimonie et utilisez des quantificateurs non gourmands (*? et +?) si nécessaire.
  • Commenter votre Code : Si vous utilisez VBA, commentez votre code pour expliquer ce que font vos regex. Cela facilitera la maintenance et la compréhension de votre code.
  • Choisir la Bonne Méthode : Évaluez les avantages et les inconvénients de chaque méthode (fonctions Excel combinées, VBA, compléments) et choisissez celle qui convient le mieux à vos besoins et à votre niveau de compétence.

Conclusion

Les expressions régulières sont un outil puissant pour la manipulation de texte dans Excel. Bien qu'Excel ne les prenne pas en charge nativement, il existe plusieurs méthodes pour les utiliser indirectement. En comprenant les bases des regex et en utilisant les méthodes décrites dans cet article, vous pouvez considérablement améliorer votre capacité à extraire, valider et transformer des données dans Excel.

Questions fréquentes

Excel prend-il en charge les regex nativement ?

Non, Excel ne prend pas en charge les expressions régulières nativement. Cependant, il existe des méthodes pour les utiliser indirectement, comme l'utilisation de fonctions Excel combinées, de VBA ou de compléments.

Quelle est la meilleure méthode pour utiliser les regex dans Excel ?

La meilleure méthode dépend de vos besoins et de votre niveau de compétence. Les fonctions Excel combinées sont simples mais limitées. VBA offre plus de flexibilité mais nécessite des connaissances en programmation. Les compléments sont une option conviviale mais peuvent être payants.

Où puis-je tester mes regex avant de les utiliser dans Excel ?

Vous pouvez tester vos regex en ligne sur des sites comme regex101.com. Ces sites vous permettent de saisir une regex et un texte, et de voir les correspondances en temps réel.

Mots-clés associés :

extraction de données excel validation de données excel nettoyage de données excel vba excel regex regex excel complement

Partager cet article :