Validation des données Excel à l'aide d'expressions régulières (Regex)

  • Partage Ça
Michael Brown

Le tutoriel montre comment effectuer la validation des données dans Excel en utilisant des expressions régulières à l'aide d'une fonction RegexMatch personnalisée.

Lorsqu'il s'agit de restreindre la saisie de l'utilisateur dans les feuilles de calcul Excel, la validation des données est indispensable. Vous voulez autoriser uniquement les nombres ou les dates dans une cellule donnée ? Ou limiter les valeurs de texte à une longueur spécifique ? Ou peut-être interdire les heures en dehors d'une plage donnée ? Pas de problème, tout cela peut être facilement réalisé avec des critères de validation prédéfinis ou personnalisés. Mais que faire si je veux autoriser uniquement les adresses électroniques valides ou les chaînes de caractères qui correspondent à un critère de validation ?Un modèle spécifique ? Hélas, ce n'est pas possible. Regex vous dites ? Hmm... ça pourrait marcher !

    Comment effectuer la validation de données Excel avec Regex

    Malheureusement, aucune des fonctions intégrées d'Excel ne prend en charge les expressions régulières, et la validation des données ne fait pas exception à la règle. Pour pouvoir valider l'entrée des cellules à l'aide d'expressions régulières, vous devez d'abord créer une fonction Regex personnalisée. Autre complication, les fonctions définies par l'utilisateur de VBA ne peuvent pas être servies directement à la validation des données - vous aurez besoin d'un médiateur sous la forme d'une formule nommée.

    Compte tenu de ce qui précède, décrivons brièvement les étapes à suivre pour valider des données dans Excel à l'aide de regex :

    1. Créez une fonction Regex personnalisée qui vérifie si une valeur d'entrée correspond à une expression régulière.
    2. Définissez un nom pour votre formule Regex.
    3. Configurez une règle de validation des données basée sur la formule nommée.
    4. Copiez les paramètres de validation dans autant de cellules que vous le souhaitez.

    C'est un plan, essayons de le mettre en pratique !

    Validation des données Excel à l'aide d'expressions régulières personnalisées

    Cet exemple traite d'un cas très courant - comment autoriser uniquement les valeurs d'un modèle spécifique.

    Si chaque SKU est composé de deux groupes de caractères séparés par un trait d'union, le premier groupe comprenant trois lettres majuscules et le second groupe trois chiffres, vous pouvez identifier ces valeurs à l'aide de la regex ci-dessous.

    Patronage : ^[A-Z]{3}-\d{3}$

    Veuillez noter que le début (^) et la fin ($) de la chaîne sont ancrés, de sorte qu'aucun caractère autre que celui du motif ne peut être saisi dans une cellule.

    1. ajouter une fonction Regex Match personnalisée

    Commencez par insérer la fonction RegExpMatch dans votre classeur. Le code est déjà écrit par nos gourous d'Excel, il vous suffit donc de le copier depuis la page liée ci-dessus et de le coller dans votre éditeur VBA.

    Voici la syntaxe de la fonction pour votre référence :

    RegExpMatch(texte, motif, [match_case])

    Où :

    • Texte (obligatoire) - une chaîne source (dans notre contexte - une cellule validée).
    • Patronage (obligatoire) - une expression régulière à faire correspondre.
    • Match_case (facultatif) - type de correspondance : VRAI ou omis - sensible à la casse ; FAUX - insensible à la casse.

    Astuce : si vous êtes un utilisateur de notre Ultimate Suite, vous pouvez effectuer une validation de données Regex dans Excel sans ajouter de code VBA à vos classeurs. Il suffit d'utiliser une fonction AblebitsRegexMatch personnalisée incluse dans nos outils Regex.

    2. créer une formule nommée

    Dans votre feuille de calcul cible, sélectionnez la cellule A1 (quel que soit son contenu et quelle que soit la cellule que vous allez effectivement valider), appuyez sur Ctrl + F3 pour ouvrir le gestionnaire de noms, et définissez un nom pour cette formule :

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Vous pouvez également saisir l'expression dans une cellule (A2 dans cet exemple) et fournir $A$2 comme deuxième argument :

    =RegExpMatch(Feuille1!A1, Feuille1!$A$2)

    Pour que la formule fonctionne correctement, assurez-vous d'utiliser une référence relative pour l'objet texte (A1) et la référence absolue pour motif ($A$2).

    Étant donné que notre formule est destinée à valider les numéros de SKU, nous la nommons en conséquence : Valider_SKU .

    Remarque importante : lors de la définition de la formule, vérifiez que l'option le premier argument fait référence à la cellule actuellement sélectionnée Par exemple, si la cellule A1 est sélectionnée sur la feuille, mettez A1 dans le premier argument (conformément à nos recommandations) ; si B2 est sélectionnée, utilisez B2 comme premier argument, et ainsi de suite. La référence particulière que vous utilisez n'a pas vraiment d'importance, tant qu'elle correspond à la cellule actuellement sélectionnée.

    Pour des instructions étape par étape, veuillez consulter la rubrique Comment créer une formule nommée dans Excel.

    3. configurer la validation des données

    Sélectionnez la première cellule à vérifier (A5 dans notre cas) et créez une règle de validation des données personnalisée basée sur la formule nommée. Pour cela, procédez comme suit :

    1. Cliquez sur Données tab> ; Validation des données .
    2. Dans le Autoriser dans la liste déroulante, sélectionnez Personnalisé .
    3. Entrez la formule ci-dessous dans la case correspondante.

      =Valider_SKU

    4. Désélectionnez le Ignorer le blanc sinon votre règle ne fonctionnera pas.

    En option, vous pouvez saisir un message d'erreur personnalisé à afficher lorsque des données non valides sont saisies dans une cellule.

    Si vous avez besoin des étapes détaillées, voici : Comment configurer la validation personnalisée des données dans Excel.

    4. copier la validation des données dans d'autres cellules

    Pour copier les paramètres de validation dans d'autres cellules, voici ce que vous devez faire :

    1. Sélectionnez la cellule avec la validation des données et appuyez sur Ctrl + C pour la copier.
    2. Sélectionnez d'autres cellules que vous souhaitez valider, cliquez dessus avec le bouton droit de la souris, cliquez sur Collage spécial et choisissez le Validation option.
    3. Cliquez sur OK .

    Vous trouverez de plus amples informations dans la section Comment copier la validation des données.

    Désormais, chaque fois qu'une personne tentera de saisir une UGS non valide dans l'une des cellules validées, le message d'avertissement suivant apparaîtra :

    Validation des e-mails avec Regex

    Pour effectuer la validation des e-mails, vous commencez par écrire une expression régulière qui correspond à une adresse e-mail.

    Patronage : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Pour une explication détaillée de la syntaxe, veuillez consulter la rubrique Regex pour faire correspondre les adresses électroniques valides.

    Et maintenant, spécifiez les critères de validation en effectuant les étapes déjà connues :

    1. Entrez la regex ci-dessus dans B2.
    2. Sélectionnez la cellule A1 et définissez un nom appelé Valider_Email qui se réfère à :

      =RegExpMatch(Feuille1!A1, Feuille1!$B$2)

    3. Pour la cellule B5, appliquez une validation de données personnalisée à l'aide de la formule ci-dessous. Il est essentiel que la cellule B5 soit validée. Ignorer le blanc doit être désélectionnée.

      =Valider_Email

      En outre, vous pouvez configurer un message d'erreur personnalisé invitant l'utilisateur à saisir une adresse électronique valide.

    4. Copiez la règle dans les cellules ci-dessous.

    Si l'adresse électronique que vous saisissez dans une cellule validée ne correspond pas à un modèle regex, l'alerte suivante s'affiche :

    Validation des mots de passe à l'aide d'expressions régulières

    Lorsque vous utilisez une expression rationnelle pour valider un mot de passe, la première chose à faire est de déterminer exactement ce que votre expression rationnelle doit vérifier.

    Un mot de passe doit comporter au moins 6 caractères et ne peut contenir que des lettres (majuscules ou minuscules) et des chiffres :

    Patronage : ^[A-Za-z0-9]{6,}$

    Un mot de passe doit comporter au moins 6 caractères et comprendre au moins une lettre et un chiffre :

    Patronage : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$

    Un mot de passe doit comporter au moins 6 caractères et inclure au moins une lettre majuscule, une lettre minuscule et un chiffre :

    Patronage : ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    Un mot de passe doit comporter au moins 6 caractères et inclure au moins une lettre, un chiffre et un caractère spécial :

    Patronage : ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Une fois le modèle établi, vous pouvez passer à la configuration de la validation des données :

    1. Entrez votre regex de mot de passe dans C2.
    2. Sélectionnez la cellule A1 et créez une formule nommée appelée Valider_Mot de passe :

      =RegExpMatch(Feuille1!A1, Feuille1!$C$2)

    3. Pour la cellule C5, créez une règle de validation personnalisée à l'aide de la formule ci-dessous. N'oubliez pas de désélectionner l'option de validation de la cellule C5. Ignorer le blanc la case à cocher.

      =Validate_Password

    4. Copiez la règle dans autant de cellules que vous le souhaitez.

    Si une chaîne d'entrée ne correspond pas à l'expression rationnelle, l'alerte suivante vous rappellera quels types de valeurs sont acceptés :

    La validation des données par Regex ne fonctionne pas

    Si la validation de données Regex ne fonctionne pas dans votre Excel, il est fort probable que ce soit pour l'une des raisons suivantes.

    Fonction RegExpMatch manquante

    Avant d'appliquer la validation des données, veillez à insérer le code de la fonction RegExpMatch dans votre classeur.

    Expression régulière incorrecte

    Pour vous assurer que votre expression régulière fonctionne comme prévu, vous pouvez entrer une formule RegExpMatch dans une cellule et examiner les résultats. Pour plus d'informations, veuillez consulter la rubrique Correspondance d'expressions régulières Excel avec exemples.

    Pour analyser et déboguer vos expressions régulières, vous pouvez utiliser des services gratuits de test de regex en ligne, tels que RegEx101 ou RegExr.

    Formule mal nommée

    Une raison très courante d'échec de la validation des données est une formule nommée par Regex se référant à une mauvaise cellule. Dans tous les exemples, nous avons recommandé de définir une formule se référant à A1 :

    =RegExpMatch(A1, regex)

    Cela ne fonctionne que si la cellule A1 est actif lors de la définition d'un nom et d'un référence relative (sans le signe $) est utilisé.

    L'idée est qu'une référence relative spécifiée dans la formule (A1) changera automatiquement en fonction de la position relative de la cellule validée. En d'autres termes, la cellule A1 n'est choisie que pour des raisons de commodité et de cohérence. En fait, vous pouvez sélectionner la cellule B1 et faire référence à B1, sélectionner la cellule C1 et faire référence à C1, et ainsi de suite. L'essentiel est que la référence relative de la formule (A1) ne soit pas une référence relative. cellule de référence devrait être le cellule active .

    Pour vérifier si votre formule nommée est correcte, sélectionnez n'importe quelle cellule de votre feuille de calcul, ouvrez le gestionnaire de noms et voyez vers quelle cellule la formule pointe. Si elle fait référence à la cellule actuellement sélectionnée, la formule est correcte. Sinon, vous devez modifier la référence dans le premier argument.

    Dans la capture d'écran ci-dessous, la cellule A7 est sélectionnée, ce qui signifie qu'une formule nommée doit avoir A7 dans le premier argument. Le deuxième argument ($A$2) fait référence à la regex - cette référence est censée rester constante, elle est donc verrouillée par le signe $.

    Option "Ignorer les blancs" sélectionnée

    Lors de la mise en place d'une règle de validation des données personnalisée, il est important de désélectionner l'option de validation des données. Ignorer le blanc Sinon, la règle ne fonctionnera pas pour la raison suivante :

    Si aucune correspondance n'est trouvée, la fonction RegExpMatch renvoie FALSE. Avec la fonction Ignorer le blanc sélectionné, FALSE équivaut à un blanc et est ignoré.

    Une autre solution consiste à indiquer explicitement que la formule doit renvoyer VRAI :

    =RegExpMatch(...)=TRUE

    Voilà comment faire de la validation de données dans Excel en utilisant des expressions régulières. Je vous remercie de votre lecture et j'ai hâte de vous retrouver sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Exemples de validation de données Regex (fichier .xlsm)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.