Création d’un UserForm, Excel VBA

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 InsertionUserForm.
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 InsertionModule, 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.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x