Les formulaires
Présentation
Les formulaires (également appelés boîtes de dialogue personnalisées, formulaires personnalisés, feuilles utilisateur ou UserForm) permettent de réaliser des interfaces utilisateur simples et conviviales pour la saisie, la modification ou la visualisation de données.
Les formulaires personnalisés sont des boîtes de dialogue sur lesquels vous pouvez :
-
placer des contrôles ActiveX tels que des zones de texte, des listes déroulantes, des boutons de commande... ;
-
associer du code VBA permettant de répondre aux différents événements utilisateurs (clic sur un bouton de commande, saisie d’une zone de texte, sélection dans une liste déroulante...).
Vous trouverez un exemple de formulaire dans ce chapitre. Par ailleurs, le chapitre Exemple d’application VBA Excel contient plusieurs formulaires et notamment un formulaire d’identification utilisateur.
Créer un formulaire
Un formulaire est créé dans une feuille UserForm.
Pour insérer une feuille UserForm, accédez à Microsoft Visual Basic, puis faites Insertion - UserForm.
Une feuille appelée UserForm n (ex. : UserForm1) est insérée, un formulaire vide est affiché et la boîte à outils apparaît.
Pour afficher la fenêtre des propriétés, faites : Affichage - Fenêtre propriétés ou ou [F4].
(Name)
Nomme le formulaire.
Caption
Renseigne la barre de titre.
Pour dimensionner le formulaire, sélectionnez-le et faites glisser les poignées de dimensionnement ou renseignez les propriétés Height et Width du formulaire.
L’option Contrôles complémentaires permet d’ajouter d’autres contrôles au niveau de la barre d’outils.
Liste des différents contrôles
Outil |
Nom |
Objet |
Intitulé |
Label |
|
Zone de texte |
TextBox |
|
Zone de liste modifiable |
ComboBox |
|
Zone de liste |
ListBox |
|
Case à cocher |
CheckBox |
|
Bouton d’option |
OptionButton |
|
Bouton bascule |
ToggleButton |
|
Cadre |
Frame |
|
Bouton de commande |
CommandButton |
|
Contrôle onglet |
TabStrip |
|
Multipage (sélection de pages) |
Multipage |
|
Défilement |
ScrollBar |
|
Toupie (sélection de valeurs) |
SpinButton |
|
Image |
Image |
|
RefEdit (sélection de plages) |
RefEdit |
Dessiner un contrôle
Sélectionnez le contrôle à créer et réalisez un cliqué-glissé pour tracer son cadre d’apparition.
Pour tracer à la suite plusieurs contrôles de même type, réalisez un double clic sur l’outil correspondant.
Découvrir quelques propriétés...
Personnaliser un formulaire
1. Écrire des procédures
Pour afficher la fenêtre de code d’un contrôle :
réalisez un double clic sur le contrôle auquel vous souhaitez affecter un code, ou sélectionnez le contrôle, puis faites :
Affichage - Code ou [F7]
Pour insérer un nouvel événement, ouvrez la liste de droite et sélectionnez l’événement attendu.
Sans cette manipulation, l’événement proposé pour la majorité des contrôles est l’événement Click.
Pour revenir en affichage du contrôle, faites :
Affichage - Objet ou [Shift][F7]
2. Liste des événements associés aux principaux contrôles
Activate
Survient lorsque la feuille devient active.
AddControl
Survient lors de l’insertion d’un contrôle dans une feuille.
AfterUpdate
Survient après la modification des données.
BeforeDragOver
Survient lorsqu’une opération de glissé-déplacé est en cours.
BeforeDropOrPaste
Survient lorsque l’utilisateur est sur le point de déplacer ou de coller des données sur un objet.
BeforeUpdate
Survient avant la modification des données.
Change
Survient lors de la modification de la propriété Value.
Click
Survient lorsque l’utilisateur clique sur un contrôle ou lorsqu’il sélectionne de façon définitive une valeur parmi d’autres.
DblClick
Survient lorsque l’utilisateur double clique.
Deactivate
Survient lorsque la feuille cesse d’être la fenêtre active.
DropButtonClick
Survient chaque fois qu’une liste déroulante modifiable apparaît et disparaît.
Enter
Survient avant qu’un contrôle ne reçoive réellement le focus d’un contrôle d’une...
Exemple de formulaire personnalisé
1. Présentation
Cet exemple montre comment réaliser un formulaire personnalisé destiné à saisir ou modifier les fiches "employés". Le classeur Employés.xlsm contient deux feuilles de calcul et un formulaire.
La feuille "Employés" contient la liste des employés :
La feuille "Services" contient la liste des services :
Le formulaire "Employés" permet :
-
de modifier les informations d’un employé et de mettre à jour la feuille Excel Employés,
-
de créer un nouvel employé et de l’ajouter dans la liste de la feuille Excel Employés.
La liste des services est renseignée à partir de la feuille Services.
Liste des contrôles du formulaire Employés :
N° |
Type de contrôle |
Nom |
1 |
Zone de liste |
lstEmployes |
2 |
Bouton de commande |
cmdNouveau |
3 |
Bouton option |
optMme |
4 |
Bouton option |
optMlle |
5 |
Bouton option |
optM |
6 |
Zone de texte |
txtNom |
7 |
Zone de texte |
txtPrénom |
8 |
Zone de liste |
lstServices |
9 |
Bouton de commande |
cmdValider |
10 |
Bouton de commande |
cmdFermer |
2. Code associé au bouton macro de la fiche Employés
Ce code est contenu dans le module de classe ThisWorkbook.
Sub Affiche_Formulaire()
' Affichage du formulaire Employés
Employés.Show
End Sub
3. Code VBA associé au formulaire
Option Explicit
' Nom de l'application
Const strAppName = "Saisie des employés"
Dim bNouveau As Boolean
________________________________________________________________
Private Sub UserForm_Initialize()
Dim oRng As Range
Dim oCell As Range
...