Création d’un UserForm, Excel VBA
Dans ce guide, nous allons vous expliquer comment créer un UserForm en Excel VBA, étape par étape, avec une explication détaillée du code.
1. Qu’est-ce qu’un UserForm ?
Un UserForm est une boîte de dialogue personnalisée qui permet aux utilisateurs d’interagir avec des applications VBA dans Excel. Il fournit une interface graphique pour saisir et afficher des données à l’aide de contrôles comme des zones de texte, des étiquettes, des boutons, des listes déroulantes et des cases à cocher.
2. Étapes pour créer un UserForm en Excel VBA
Étape 1 : Ouvrir l’éditeur VBA
Ouvrez Excel.
Appuyez sur ALT + F11
pour ouvrir l’éditeur VBA.
Dans l’éditeur VBA, allez dans Insertion
→ UserForm
.
Un UserForm vierge apparaîtra avec la Boîte à outils, où vous pouvez ajouter des contrôles comme des zones de texte, des étiquettes, des boutons, etc.
Étape 2 : Ajouter des contrôles au UserForm
1. Faites glisser et déposez les contrôles suivants sur le UserForm :
- Étiquettes (pour les noms des champs)
- Zones de texte (pour la saisie des utilisateurs)
- Boutons de commande (pour des actions comme Soumettre et Annuler)
- ComboBox (pour des options de sélection)
- ListBox (pour des choix multiples)
2. Renommez chaque contrôle de manière appropriée dans la Fenêtre des Propriétés.
Étape 3 : Code VBA pour gérer les événements du UserForm
Voici le code complet VBA pour un UserForm qui collecte les informations utilisateur (Nom, Âge, et Sexe) et les enregistre dans une feuille Excel.
Code : UserForm avec fonctionnalité d’entrée de données
' Définir le UserForm et ses composants Option Explicit Private Sub UserForm_Initialize() ' Initialiser le ComboBox avec des options de sexe Me.cboGender.AddItem "Homme" Me.cboGender.AddItem "Femme" Me.cboGender.AddItem "Autre" End Sub Private Sub cmdSubmit_Click() Dim ws As Worksheet Dim lastRow As Long ' Définir la feuille de calcul Set ws = ThisWorkbook.Sheets("UserData") ' Trouver la dernière ligne vide lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 ' Transférer les données du UserForm vers la feuille de calcul ws.Cells(lastRow, 1).Value = Me.txtName.Value ws.Cells(lastRow, 2).Value = Me.txtAge.Value ws.Cells(lastRow, 3).Value = Me.cboGender.Value ' Effacer les champs pour une nouvelle entrée Me.txtName.Value = "" Me.txtAge.Value = "" Me.cboGender.Value = "" ' Informer l'utilisateur MsgBox "Données envoyées avec succès !", vbInformation, "Succès" End Sub Private Sub cmdCancel_Click() ' Fermer le UserForm Unload Me End Sub
4. Explication du code
1️⃣ UserForm_Initialize()
- Cet événement est déclenché lorsque le formulaire est chargé.
- Il remplit le ComboBox (
cboGender
) avec les options de sexe.
2️⃣ cmdSubmit_Click()
- Récupère les valeurs des Zones de texte et du ComboBox.
- Trouve la prochaine ligne vide dans la feuille de calcul.
- Enregistre les données de l’utilisateur dans la feuille
UserData
. - Efface les champs pour permettre de nouvelles entrées.
- Affiche un message de confirmation.
3️⃣ cmdCancel_Click()
- Ferme le UserForm lorsque le bouton Annuler est cliqué.
5. Comment exécuter le UserForm
1. Assurez-vous que votre feuille Excel contient une feuille nommée « UserData » avec des en-têtes (Nom
, Âge
, Sexe
).
2. Ouvrez l’éditeur VBA, allez dans Insertion
→ Module
, et ajoutez cette macro :
Sub ShowUserForm() UserForm1.Show End Sub
3. Exécutez ShowUserForm
depuis la fenêtre Macro (ALT + F8
) ou affectez-la à un bouton.
6. Améliorations et bonnes pratiques
- Validation des entrées : Ajoutez une gestion des erreurs pour éviter les champs vides.
- Stockage dans une base de données : Enregistrez les données dans une base de données externe (par exemple, Access).
- Améliorations de l’interface utilisateur : Utilisez des cadres, des couleurs et de la mise en forme pour améliorer l’esthétique.
Ce guide détaillé devrait vous aider à créer et personnaliser des UserForms efficacement en Excel VBA.