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.