Créer un formulaire de saisie de données avec validation, Excel VBA
Voici un exemple détaillé de la création d’un formulaire de saisie de données avec validation dans Excel à l’aide de VBA. Ce code vous guidera à travers les étapes pour créer un formulaire simple où l’utilisateur pourra entrer des données. Nous allons ajouter des validations sur les champs pour assurer que les données saisies sont correctes.
1. Étapes pour créer le formulaire :
1. Accéder à l’éditeur VBA :
Ouvrez Excel, puis appuyez sur Alt + F11 pour accéder à l’éditeur VBA.
2. Créer un formulaire (UserForm) :
Dans l’éditeur VBA, allez dans le menu Insertion, puis cliquez sur UserForm pour ajouter un nouveau formulaire.
3. Ajouter des contrôles au formulaire :
Vous pouvez ajouter plusieurs contrôles (TextBox, ComboBox, Label, CommandButton) en utilisant la boîte à outils.
Pour cet exemple, nous utiliserons :
- 3 TextBox : pour saisir le nom, l’âge et la ville.
- 1 ComboBox : pour sélectionner le sexe (Homme, Femme).
- 2 CommandButton : un bouton pour enregistrer les données et un autre pour annuler.
5. Ajouter du code VBA :
Après avoir créé le formulaire, voici le code que vous pouvez utiliser pour la validation et l’enregistrement des données.
2. Code VBA détaillé pour le formulaire de saisie avec validation
Code pour le formulaire (UserForm)
Voici un code pour le formulaire, avec des champs de saisie et une validation.
Private Sub UserForm_Initialize() ' Remplir le ComboBox avec des valeurs par défaut ComboBoxSexe.AddItem "Homme" ComboBoxSexe.AddItem "Femme" End Sub Private Sub CommandButtonValider_Click() ' Validation des champs If TextBoxNom.Value = "" Then MsgBox "Le nom est requis!", vbExclamation, "Erreur" TextBoxNom.SetFocus Exit Sub End If If TextBoxAge.Value = "" Or Not IsNumeric(TextBoxAge.Value) Then MsgBox "Veuillez entrer un âge valide!", vbExclamation, "Erreur" TextBoxAge.SetFocus Exit Sub End If If ComboBoxSexe.Value = "" Then MsgBox "Veuillez sélectionner un sexe!", vbExclamation, "Erreur" ComboBoxSexe.SetFocus Exit Sub End If If TextBoxVille.Value = "" Then MsgBox "La ville est requise!", vbExclamation, "Erreur" TextBoxVille.SetFocus Exit Sub End If ' Enregistrer les données dans la feuille Excel Dim LastRow As Long LastRow = Sheets("Feuille1").Cells(Sheets("Feuille1").Rows.Count, 1).End(xlUp).Row + 1 Sheets("Feuille1").Cells(LastRow, 1).Value = TextBoxNom.Value Sheets("Feuille1").Cells(LastRow, 2).Value = TextBoxAge.Value Sheets("Feuille1").Cells(LastRow, 3).Value = ComboBoxSexe.Value Sheets("Feuille1").Cells(LastRow, 4).Value = TextBoxVille.Value MsgBox "Données enregistrées avec succès!", vbInformation, "Succès" ' Réinitialiser les champs TextBoxNom.Value = "" TextBoxAge.Value = "" ComboBoxSexe.Value = "" TextBoxVille.Value = "" End Sub Private Sub CommandButtonAnnuler_Click() ' Fermer le formulaire sans enregistrer Unload Me End Sub
Explication du code
1. UserForm_Initialize :
Cette procédure s’exécute lorsque le formulaire est initialisé. Elle remplit le ComboBoxSexe avec deux options (« Homme » et « Femme »).
2. CommandButtonValider_Click :
C’est la la procédure qui se déclenche lorsque l’utilisateur clique sur le bouton « Valider ».
- Elle commence par vérifier si tous les champs obligatoires sont remplis. Si un champ est vide ou invalide, un message d’erreur s’affiche et l’utilisateur est invité à corriger.
- Ensuite, les données sont enregistrées dans la feuille Excel. Les informations sont insérées à la première ligne vide de la feuille Feuille1.
- Après l’enregistrement, un message de confirmation s’affiche, et les champs du formulaire sont réinitialisés pour une nouvelle saisie.
3. CommandButtonAnnuler_Click :
Cette procédure ferme le formulaire sans enregistrer les données lorsque l’utilisateur clique sur le bouton « Annuler ».
3. Exemple de structure de la feuille Excel
Avant de tester le formulaire, assurez-vous que la feuille Feuille1 contient les colonnes suivantes :
- Colonne A : Nom
- Colonne B : Âge
- Colonne C : Sexe
- Colonne D : Ville
4. Lancer le formulaire
Pour afficher le formulaire à partir d’une feuille Excel, vous pouvez ajouter un bouton de commande dans la feuille et lier ce bouton à la procédure suivante dans un module :
Sub OuvrirFormulaire() UserForm1.Show End Sub
Ensuite, assignez cette macro au bouton dans votre feuille Excel.
5. Résumé des points importants
- Validation des données : Le formulaire vérifie si tous les champs sont remplis correctement avant d’enregistrer les données.
- Réinitialisation : Après chaque enregistrement, le formulaire est réinitialisé pour permettre une nouvelle saisie.
- Interaction avec la feuille Excel : Les données saisies sont envoyées à la feuille Excel, commençant à la première ligne vide.
Avec ce code, vous avez un formulaire fonctionnel pour saisir des données avec une validation préalable. Vous pouvez ajouter des fonctionnalités supplémentaires selon vos besoins, comme des contrôles sur les âges, des listes déroulantes, etc.