Créer des formulaires de saisie de données personnalisés, Excel VBA
Créer un formulaire de saisie de données personnalisé dans Excel avec VBA est un moyen très pratique d’obtenir des entrées de l’utilisateur de manière plus contrôlée. Ce type de formulaire permet de saisir, modifier ou supprimer des données dans une feuille de calcul Excel via une interface conviviale. Voici un guide détaillé sur la création d’un formulaire de saisie de données avec VBA.
Étapes de Création d’un Formulaire de Saisie de Données Personnalisé avec VBA
1. Ouvrir l’éditeur VBA
Pour commencer, nous devons ouvrir l’éditeur VBA d’Excel en suivant ces étapes :
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Dans l’éditeur VBA, allez dans Insertion > UserForm pour créer un nouveau formulaire.
2. Ajouter des contrôles sur le formulaire
Une fois le UserForm créé, vous pouvez ajouter des éléments comme des zones de texte, des boutons et des étiquettes. Voici quelques contrôles courants que vous pouvez ajouter :
- TextBox : pour saisir des données textuelles.
- ComboBox : pour permettre à l’utilisateur de choisir une option dans une liste déroulante.
- CommandButton : pour ajouter des boutons d’action (par exemple, « Ajouter », « Annuler »).
- Label : pour afficher des instructions ou des intitulés.
Exemple : Formulaire de saisie pour un employé
Voici un exemple simple où vous allez saisir des informations d’un employé : son nom, son âge et son département.
- TextBox pour le nom de l’employé : Ajoutez un TextBox pour le nom.
- TextBox pour l’âge de l’employé : Ajoutez un TextBox pour l’âge.
- ComboBox pour le département : Ajoutez un ComboBox avec une liste déroulante de départements.
- CommandButton pour ajouter : Ajoutez un bouton Ajouter.
- CommandButton pour annuler : Ajoutez un bouton Annuler.
3. Code VBA pour afficher et gérer le formulaire
Ensuite, vous devez écrire du code VBA pour afficher le formulaire et gérer l’ajout des données.
Voici le code détaillé :
' Module VBA
Sub OuvrirFormulaire()
' Cette fonction permet d'afficher le formulaire
UserForm1.Show
End Sub
' Code du formulaire (UserForm1)
Private Sub UserForm_Initialize()
' Cette procédure initialise les éléments du formulaire lorsque le formulaire est ouvert
' Remplir la ComboBox avec les départements
ComboBox1.AddItem "Ressources Humaines"
ComboBox1.AddItem "Informatique"
ComboBox1.AddItem "Marketing"
ComboBox1.AddItem "Finance"
' Placer le focus sur le champ Nom
TextBox1.SetFocus
End Sub
Private Sub CommandButton1_Click()
' Cette procédure est appelée lorsque le bouton Ajouter est cliqué
' Récupérer les données saisies par l'utilisateur
Dim nom As String
Dim age As Integer
Dim departement As String
nom = TextBox1.Value
age = TextBox2.Value
departement = ComboBox1.Value
' Vérification que tous les champs sont remplis
If nom = "" Or age = "" Or departement = "" Then
MsgBox "Veuillez remplir tous les champs.", vbExclamation
Exit Sub
End If
' Ajouter les données dans la feuille de calcul (ici, les ajouter à la première ligne vide)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Employes")
' Trouver la première ligne vide
Dim i As Integer
i = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
' Insérer les données dans la feuille de calcul
ws.Cells(i, 1).Value = nom
ws.Cells(i, 2).Value = age
ws.Cells(i, 3).Value = departement
' Message de confirmation
MsgBox "Données ajoutées avec succès.", vbInformation
' Réinitialiser le formulaire pour une nouvelle saisie
TextBox1.Value = ""
TextBox2.Value = ""
ComboBox1.Value = ""
End Sub
Private Sub CommandButton2_Click()
' Cette procédure est appelée lorsque le bouton Annuler est cliqué
Unload Me ' Ferme le formulaire
End Sub
Explication du Code
- UserForm_Initialize() : Cette fonction est exécutée lorsque le formulaire est ouvert. Elle initialise les contrôles du formulaire, comme la liste des départements dans le ComboBox.
- CommandButton1_Click() : Lorsque l’utilisateur clique sur le bouton Ajouter, cette procédure récupère les valeurs saisies dans les champs et les ajoute à la feuille de calcul « Employes ». Elle vérifie également que tous les champs sont remplis avant d’ajouter les données.
- CommandButton2_Click() : Cette procédure ferme simplement le formulaire lorsque l’utilisateur clique sur le bouton Annuler.
4. Création d’une feuille de données
Dans votre classeur Excel, créez une feuille de calcul nommée « Employes ». Cette feuille contiendra les colonnes suivantes :
- Colonne A : Nom
- Colonne B : Âge
- Colonne C : Département
5. Tester le formulaire
- Retournez dans Excel.
- Créez un bouton (via Insertion > Formes > Bouton) et associez-le à la macro OuvrirFormulaire.
- Cliquez sur le bouton pour ouvrir le formulaire de saisie de données.
- Entrez les données et cliquez sur Ajouter pour les ajouter à la feuille de calcul.
6. Personnalisation du formulaire
Vous pouvez personnaliser davantage votre formulaire en fonction de vos besoins. Par exemple :
- Ajouter des cases à cocher pour des options supplémentaires.
- Utiliser des zones de texte masquées pour la saisie de mots de passe.
- Ajouter des contrôles pour la modification et la suppression des données déjà existantes.
Conclusion
Ce code fournit un exemple de base pour créer un formulaire de saisie de données personnalisé dans Excel à l’aide de VBA. Vous pouvez étendre cette structure pour répondre à des besoins plus complexes et enrichir l’expérience utilisateur avec des fonctionnalités supplémentaires comme la validation des données et la gestion des erreurs.