Développer une solution de gouvernance des données personnalisée, Excel VBA
Voici un guide détaillé pour développer une solution de gouvernance des données personnalisée dans Excel VBA, comprenant une feuille de saisie des données, un code VBA pour la validation des données, un bouton pour activer la validation, ainsi qu’un exemple de sortie.
1. Feuille de Saisie des Données
La Feuille de Saisie des Données contiendra plusieurs colonnes, par exemple :
- ID (Identifiant unique)
- Nom (Saisie de texte)
- Âge (Saisie numérique)
- Email (Validation du format d’email)
- Date de Naissance (Validation de la date)
2. Code VBA pour la Validation des Données
Le code VBA effectuera les contrôles nécessaires pour garantir que les données respectent les règles définies, comme :
- Validation Numérique : Vérifier que la colonne Âge ne contient que des valeurs numériques.
- Validation du Format d’Email : Vérifier que la colonne Email respecte un format valide.
- Validation de la Date de Naissance : Vérifier que la Date de Naissance est au format valide et dans le passé.
Voici le code VBA pour implémenter ces validations :
Sub ValidateData() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim ageCell As Range Dim emailCell As Range Dim dobCell As Range Dim validEmail As Boolean Set ws = ThisWorkbook.Sheets("DataInput") ' Nom de votre feuille de saisie lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Trouver la dernière ligne For i = 2 To lastRow ' Commencer à partir de la ligne 2 en supposant que la ligne 1 contient les en-têtes ' Validation de l'Âge (Numérique) Set ageCell = ws.Cells(i, 3) ' Supposons que l'Âge est dans la colonne C If Not IsNumeric(ageCell.Value) Or ageCell.Value <= 0 Then ageCell.Interior.Color = RGB(255, 0, 0) ' Mettre en surbrillance les données invalides en rouge MsgBox "Âge invalide à la ligne " & i Else ageCell.Interior.ColorIndex = xlNone ' Supprimer la surbrillance si valide End If ' Validation de l'Email (Vérification du format) Set emailCell = ws.Cells(i, 4) ' Supposons que l'Email est dans la colonne D validEmail = IsValidEmail(emailCell.Value) If Not validEmail Then emailCell.Interior.Color = RGB(255, 0, 0) MsgBox "Email invalide à la ligne " & i Else emailCell.Interior.ColorIndex = xlNone End If ' Validation de la Date de Naissance (Doit être une date passée) Set dobCell = ws.Cells(i, 5) ' Supposons que la Date de Naissance est dans la colonne E If Not IsDate(dobCell.Value) Or dobCell.Value >= Date Then dobCell.Interior.Color = RGB(255, 0, 0) MsgBox "Date de naissance invalide à la ligne " & i Else dobCell.Interior.ColorIndex = xlNone End If Next i End Sub ' Fonction pour vérifier si l'email est valide Function IsValidEmail(email As String) As Boolean Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") regEx.IgnoreCase = True regEx.Global = True regEx.Pattern = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$" IsValidEmail = regEx.Test(email) End Function
3. Bouton pour la Validation des Données
Pour déclencher la validation des données, vous pouvez ajouter un bouton à la feuille et associer la macro ValidateData
à ce bouton.
Étapes pour ajouter un bouton :
1. Allez dans l’onglet Développeur (activez-le si nécessaire).
2. Cliquez sur Insertion et choisissez le Bouton (Contrôle de formulaire).
3. Dessinez le bouton sur la feuille.
4. Clic droit sur le bouton et sélectionnez Assigner une macro.
5. Choisissez ValidateData
dans la liste des macros.
Ainsi, chaque fois que le bouton est cliqué, il déclenchera la sous-routine ValidateData
, qui validera toutes les lignes de la feuille de saisie des données.
4. Exemple de Sortie
Lorsque les données sont validées, si une ligne contient des données invalides, la cellule correspondante sera mise en surbrillance en rouge, et une boîte de message apparaîtra indiquant le numéro de la ligne où se trouve l’erreur.
Scénario Exemple :
- Ligne 2 : Nom : John, Âge : -5 (Invalide), Email : john.doe@example, Date de Naissance : 01/01/1990.
- La cellule Âge sera mise en surbrillance en rouge, et un message s’affichera disant « Âge invalide à la ligne 2 ».
- La cellule Email sera également mise en surbrillance en rouge, et un message s’affichera disant « Email invalide à la ligne 2 ».
- La Date de Naissance sera validée (si c’est une date valide, sinon la cellule sera mise en surbrillance en rouge).
Résultat :
- Toutes les entrées invalides seront mises en surbrillance en rouge, et vous recevrez une boîte de message indiquant quelle ligne contient l’erreur.
Explication :
- Validation de l’Âge garantit que les utilisateurs saisissent une valeur numérique valide supérieure à 0.
- Validation de l’Email utilise une expression régulière pour vérifier que l’email respecte un format valide.
- Validation de la Date de Naissance garantit que la date saisie est une date valide et qu’elle est dans le passé, car nous ne voulons généralement pas qu’une date de naissance soit dans le futur.
Cette configuration permet d’implémenter efficacement des règles de gouvernance des données dans Excel, garantissant que les données saisies sont propres, valides et conformes aux formats requis.